Node.js
Запуск node.js как службы
Поиск…
Вступление
В отличие от многих веб-серверов, Node не устанавливается как служба из коробки. Но в производстве лучше использовать его как dæmon, управляемый системой init.
Node.js как системный dæmon
systemd является де-факто init-системой в большинстве дистрибутивов Linux. После того, как узел был настроен для работы с systemd, для его управления можно использовать service
команду.
Прежде всего, ему нужен файл конфигурации, давайте его создадим. Для дистрибутивов на основе Debian это будет в /etc/systemd/system/node.service
[Unit]
Description=My super nodejs app
[Service]
# set the working directory to have consistent relative paths
WorkingDirectory=/var/www/app
# start the server file (file is relative to WorkingDirectory here)
ExecStart=/usr/bin/node serverCluster.js
# if process crashes, always try to restart
Restart=always
# let 500ms between the crash and the restart
RestartSec=500ms
# send log tot syslog here (it doesn't compete with other log config in the app itself)
StandardOutput=syslog
StandardError=syslog
# nodejs process name in syslog
SyslogIdentifier=nodejs
# user and group starting the app
User=www-data
Group=www-data
# set the environement (dev, prod…)
Environment=NODE_ENV=production
[Install]
# start node at multi user system level (= sysVinit runlevel 3)
WantedBy=multi-user.target
Теперь можно запускать, останавливать и перезапускать приложение с помощью:
service node start
service node stop
service node restart
Чтобы сообщить systemd автоматически запускать узел при загрузке, просто введите: systemctl enable node
.
Вот и все, узел теперь работает как dæmon.
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow