Node.js
Mantenere costantemente attiva un'applicazione di nodo
Ricerca…
Utilizzare PM2 come gestore processi
PM2 ti consente di eseguire gli script nodejs per sempre. Nel caso in cui l'applicazione si arresti in modo anomalo, anche PM2 lo riavvierà automaticamente.
Installa PM2 a livello globale per gestire le istanze nodejs
npm install pm2 -g
Passare alla directory in cui risiede lo script nodejs ed eseguire il seguente comando ogni volta che si desidera avviare un'istanza nodejs da monitorare tramite pm2:
pm2 start server.js --name "app1"
Comandi utili per il monitoraggio del processo
Elenca tutte le istanze nodejs gestite da pm2
pm2 list
Arresta una particolare istanza nodejs
pm2 stop <instance named>
Elimina una particolare istanza nodejs
pm2 delete <instance name>
Riavvia una particolare istanza nodejs
pm2 restart <instance name>
Monitoraggio di tutte le istanze nodejs
pm2 monit
Stop pm2
pm2 kill
A differenza del riavvio, che uccide e riavvia il processo, ricarica un tempo di ricarica di 0 secondi
pm2 reload <instance name>
Visualizza i log
pm2 logs <instance_name>
Esecuzione e arresto di un daemon Forever
Per iniziare il processo:
$ forever start index.js
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: index.js
Elenco in esecuzione per sempre istanze:
$ forever list
info: Forever processes running
|data: | index | uid | command | script |forever pid|id | logfile |uptime |
|------|-------|-----|------------------|-------------|-----------|-----|------------------------|--------------|
|data: | [0] |f4Kt |/usr/bin/nodejs | src/index.js|2131 | 2146|/root/.forever/f4Kt.log | 0:0:0:11.485 |
Fermare il primo processo:
$ forever stop 0
$ forever stop 2146
$ forever stop --uid f4Kt
$ forever stop --pidFile 2131
Funzionamento continuo con nohup
Un'alternativa a per sempre su Linux è nohup.
Per avviare un'istanza nohup
- cd nella posizione di
app.js
o cartellawww
- eseguire
nohup nodejs app.js &
Per uccidere il processo
- lanciare
ps -ef|grep nodejs
-
kill -9 <the process number>
Process Mangement with Forever
Installazione
npm install forever -g
cd /node/project/directory
usi
forever start app.js