Node.js
Esecuzione di node.js come servizio
Ricerca…
introduzione
A differenza di molti server Web, Node non è installato come un servizio pronto all'uso. Ma in produzione, è meglio farlo funzionare come un demone, gestito da un sistema di init.
Node.js come un demone di sistema
systemd è il sistema di init di fatto nella maggior parte delle distribuzioni Linux. Dopo che il nodo è stato configurato per l'esecuzione con systemd, è possibile utilizzare il comando di service
per gestirlo.
Prima di tutto, ha bisogno di un file di configurazione, creiamo. Per le distro basate su Debian, sarà in /etc/systemd/system/node.service
[Unit]
Description=My super nodejs app
[Service]
# set the working directory to have consistent relative paths
WorkingDirectory=/var/www/app
# start the server file (file is relative to WorkingDirectory here)
ExecStart=/usr/bin/node serverCluster.js
# if process crashes, always try to restart
Restart=always
# let 500ms between the crash and the restart
RestartSec=500ms
# send log tot syslog here (it doesn't compete with other log config in the app itself)
StandardOutput=syslog
StandardError=syslog
# nodejs process name in syslog
SyslogIdentifier=nodejs
# user and group starting the app
User=www-data
Group=www-data
# set the environement (dev, prod…)
Environment=NODE_ENV=production
[Install]
# start node at multi user system level (= sysVinit runlevel 3)
WantedBy=multi-user.target
Ora è possibile avviare, arrestare e riavviare l'app rispettivamente con:
service node start
service node stop
service node restart
Per dire a systemd di avviare automaticamente il nodo all'avvio, basta digitare: systemctl enable node
.
Questo è tutto, il nodo ora funziona come un demone.