2016 answer : почти каждый дистрибутив Linux поставляется с systemd, что означает, что forever, monit, PM2 и т. Д. Больше не нужны - ваша ОС уже выполняет эти задачи .
Создайте файл myapp.service
(очевидно, заменив «myapp» именем вашего приложения):
[Unit]
Description=My app
[Service]
ExecStart=/var/www/myapp/app.js
Restart=always
User=nobody
# Note Debian/Ubuntu uses 'nogroup', RHEL/Fedora uses 'nobody'
Group=nobody
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/var/www/myapp
[Install]
WantedBy=multi-user.target
Обратите внимание, если вы новичок в Unix: /var/www/myapp/app.js
в первой строке должно быть #!/usr/bin/env node
.
Скопируйте файл службы в папку /etc/systemd/system
.
Сообщите systemd о новой службе с помощью systemctl daemon-reload
.
Запустите его с systemctl start myapp
.
Включите запуск при загрузке с systemctl enable myapp
.
См. Журналы с journalctl -u myapp
Это взято из Как мы развертываем приложения для узлов в Linux, выпуск 2018 года , который также включает команды для генерации AWS / DigitalOcean / Azure CloudConfig для построения серверов Linux / узлов (включая файл .service
).