我有一个简单的 node.js 脚本,它使用 readline 接受控制台命令。我已将其设置为作为 systemd 服务运行(在 Debian 9 上):
[Unit]
Description=Web Game Server
[Service]
ExecStart=/usr/bin/node /var/www/index.js
Restart=always
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
当直接从控制台运行时,node index.js
我可以通过控制台向它发送命令。当它作为服务运行时,有什么方法可以做到这一点吗?
答案1
因为它现在作为 systemd 服务运行,所以我认为您不能直接将其连接到控制台。您需要某种形式的进程间通信,例如:
- TCP 套接字服务器
- UNIX 套接字
- FIFO(命名管道)
'socat' 实用程序在控制台中运行很有用。它可以使用上述协议之一连接到服务,并为用户提供正常的 readline 功能。