Recherche…


Introduction

Contrairement à de nombreux serveurs Web, Node n'est pas installé en tant que service par défaut. Mais en production, il est préférable de le faire fonctionner comme un démon, géré par un système init.

Node.js en tant que systemd dæmon

systemd est le système d'initialisation de facto dans la plupart des distributions Linux. Une fois que Node a été configuré pour s'exécuter avec systemd, il est possible d'utiliser la commande de service pour le gérer.

Tout d'abord, il faut un fichier de configuration, créons-le. Pour les distributions basées sur Debian, ce sera dans /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

Il est maintenant possible de démarrer, d'arrêter et de redémarrer respectivement l'application avec:

service node start
service node stop
service node restart

Pour que systemd démarre automatiquement le noeud au démarrage, tapez simplement: systemctl enable node .

C'est tout, le noeud fonctionne désormais comme un dæmon.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow