Odpowiedź 2016 : prawie każda dystrybucja Linuksa jest dostarczana z systemd, co oznacza, że na zawsze, monitorowanie, PM2 itp. Nie są już potrzebne - Twój system operacyjny już obsługuje te zadania .
Utwórz myapp.serviceplik (oczywiście zastępując „myapp” nazwą aplikacji):
[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
Uwaga: jeśli dopiero zaczynasz korzystać z Uniksa:/var/www/myapp/app.js powinien być #!/usr/bin/env nodew pierwszej linii.
Skopiuj plik usługi do /etc/systemd/systemfolderu.
Poinformuj systemd o nowej usłudze za pomocą systemctl daemon-reload.
Zacznij od systemctl start myapp.
Włącz go, aby uruchamiał się przy rozruchu systemctl enable myapp.
Zobacz dzienniki z journalctl -u myapp
To pochodzi z tego, jak wdrażamy aplikacje węzłów w systemie Linux, edycja 2018 , która obejmuje również polecenia do generowania AWS / DigitalOcean / Azure CloudConfig do budowania serwerów Linux / węzłów (w tym .servicepliku).