Назад | Перейти на главную страницу

Можете ли вы отправлять консольные команды службе 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 Я могу отправлять ему команды через консоль. Есть ли способ сделать это, пока он работает как служба?

Поскольку теперь он работает как служба systemd, я не думаю, что вы можете напрямую подключить его к консоли. Вам нужна какая-то форма межпроцессного взаимодействия, например:

  • TCP Socket сервер
  • Сокет UNIX
  • FIFO (именованный канал)

Утилита socat может быть полезна для запуска в консоли. Он может подключаться к службе, используя один из вышеперечисленных протоколов, и предоставлять пользователю обычные возможности чтения.