Приложения nodejs собираются обычно на коленке и для них нет стандартного способа запуска как демон. Наиболее короткий и корректный способ сделать это сейчас — через systemd
. Для этого создаем свежий конфиг в /etc/systemd/system/
, называем по имени приложения, например /etc/systemd/system/myapp.service
с содержимым:
[Service] WorkingDirectory=/opt/myapp/ ExecStart=/usr/bin/node /opt/myapp/app.js Restart=always StandardOutput=syslog StandardError=syslog SyslogIdentifier=myapp User=igogoo Group=igogoo Environment=NODE_ENV=production [Install] WantedBy=multi-user.target
Обычно в /etc кладутся не сами конфиги, а симлинки на действительные конфиги в /lib/systemd/system/
, но поскольку наш демон кастомный, а директория /etc
бэкапится полностью, создадим его прямо здесь.
Далее релодим конфигурацию и включаем демона на автостарт
systemctl daemon-reload systemctl enable node-app.service
Теперь возможны стандартные операции вроде
systemctl start myapp systemctl stop myapp systemctl restart myapp systemctl status node-app.service
Перезапускаем виртуалку, проверяем, что всё работает. Готово.