diff --git a/HowtoNodeJS.md b/HowtoNodeJS.md index bc820c3e..f753bf0a 100644 --- a/HowtoNodeJS.md +++ b/HowtoNodeJS.md @@ -94,6 +94,43 @@ Installation via un paquet Debian : # apt update && apt install yarn ~~~ +### PM2 + +[PM2 (Process Manager 2)](https://pm2.io) est un système de gestion de processus en production. Il peut s'assurer du bon fonctionnement du (ou des) processus applicatif, collecter les logs, faire du load balancing, etc... + +La version "Runtime" est peut être installée simplement avec npm, ou via un paquet Debian : + + +~~~ +# echo "deb https://packagecloud.io/Keymetrics/pm2/debian/ stretch main" > /etc/apt/sources.list.d/Keymetrics_pm2.list +# wget -qO - https://packagecloud.io/Keymetrics/pm2/gpgkey | apt-key add - +# apt update && apt install pm2 +~~~ + +Une application pourra ensuite être lancée avec la commande `pm2 start index.js` + +~~~ +root@cd57a5f23ead:/node-js-getting-started# pm2 start index.js +[PM2] Starting /node-js-getting-started/index.js in fork_mode (1 instance) +[PM2] Done. +┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐ +│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │ +├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤ +│ index │ 0 │ fork │ 17494 │ online │ 0 │ 0s │ 0% │ 19.5 MB │ root │ disabled │ +└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘ + Use `pm2 show ` to get more details about an app +~~~ + +On peut aussi utiliser un fichier de configuration (ou d'écosystème), qui va permettre d'ajuster certains paramètres comme les variables d'environnement ou la méthode de lancement de l'application. [Plus de détails dans la documentation officielle](https://pm2.io/doc/en/runtime/guide/ecosystem-file/) + +Quelques commandes utiles : + +* `pm2 startup debian -u app_user -h /home/app_user/` - (root) Installe pm2 au démarrage pour le compte app_user +* `pm2 start xxx.js` - Démarrer une application +* `pm2 save` - Sauvegarde la configuration en cours d'exécution. C'est ce qui sera relancé en cas de redémarrage de la machine + + + ### systemd On peut activer une unité [systemd](HowtoSystemd) pour faire tourner un service en Node.js.