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.service
plik (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 node
w pierwszej linii.
Skopiuj plik usługi do /etc/systemd/system
folderu.
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 .service
pliku).