Risposta 2016 : quasi ogni distribuzione Linux viene fornita con systemd, il che significa che per sempre, monit, PM2, ecc. Non sono più necessari - il tuo sistema operativo gestisce già queste attività .
Crea un myapp.service
file (sostituendo "myapp" con il nome della tua app, ovviamente):
[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
Nota se sei nuovo su Unix: /var/www/myapp/app.js
dovrebbe avere#!/usr/bin/env node
la prima riga.
Copia il tuo file di servizio in /etc/systemd/system
cartella.
Informa systemd del nuovo servizio con systemctl daemon-reload
.
Inizia con systemctl start myapp
.
Attivalo per l'avvio con systemctl enable myapp
.
Vedi i log con journalctl -u myapp
Questo è tratto da Come implementiamo le app nodo su Linux, edizione 2018 , che include anche i comandi per generare un AWS / DigitalOcean / Azure CloudConfig per costruire server Linux / nodo (incluso il .service
file).