您能将控制台命令发送到基于节点的 systemd 服务吗?

您能将控制台命令发送到基于节点的 systemd 服务吗?

我有一个简单的 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 功能。

相关内容