(WIP) Documentation PM2

This commit is contained in:
Ludovic Poujol 2018-08-27 19:05:07 +02:00
parent f9e2866395
commit f4dc2c0094

View file

@ -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 <id|name>` 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.