/PM2
Node.js

Prise en main de PM2, le gestionnaire de processus Node.js

Utilisations de PM2

PM2 a beaucoup d’utilisations, jetons un coup d’oeil à quelques-unes d’entre elles:

  • Redémarrage après un crash: PM2 nous permet de maintenir les processus en cours d’exécution
  • Suivi et gestion des processus à distance: un portail web vous permet de garder un oeil sur les precessus distants et de les gérer.
  • Il ne se contente pas d’exécuter des applications Node: PM2 n’est pas limité aux seuls processus Node.js, c’est vrai, vous pouvez même l’utiliser pour garder votre serveur Minecraft en ligne.
  • PM2 peut mémoriser tous vos processus et les redémarrer après un redémarrage du système.
  • Et bien plus encore.

Pour commencer

La première chose que nous devons faire est d’installer PM2 globalement sur votre machine :

npm i -g pm2

Commandes de base

Venons-en aux principe de base de son utilisation. Pour démarrer un processus sous PM2, il suffit de lancer pm2 start <app>. App étant le nom du fihier que vous exécutez. PM2 produira quelque chose comme ceci

[PM2] Starting /Users/ludovicwyffels/myApp/app.js in fork_mode (1 instance)
[PM2] Done.

┌──────┬────┬──────┬────────┬─────────┬─────┬───────────┐
│ Name │ id │ mode │ status │ restart │ cpu │ memory    │
├──────┼────┼──────┼────────┼─────────┼─────┼───────────┤
│ app  │ 0  │ fork │ online │ 0       │ 0%  │ 35.1 MB   │
└──────┴────┴──────┴────────┴─────────┴─────┴───────────┘

Faites attention à ce qu’il dis sous id. Si vous oubliez, lancez pm2 list. Si vous voulez ajouter un nom au processus lorsque vous le lancez, vous pouvez utiliser le paramètre --name (pm2 start app.js --name my-api).

Votre application fonctionne maintenant sous PM2, si elle plante, PM2 la redémarrera.

Redémarrage en cas de modification de fichier

Une autre fonctionnalité impressionnante que PM2 a est de redémarrer quand un fichier dans le répertoire de travail change. Pour que PM2 regarde notre répertoire et redémmarre les changements de fichier, incluez --watch lorsque vous démarrez votre application.

Persistance jusqu’au redémarrage

PM2 nous permet également de démarrer nos processus lorsque notre serveur (re)démarre. Commencez tout ce que vous voulez avoir en cours d’exécution tout le temps à travers pm2 start et puis exécutez pm2 save.

Maintenant, quand notre système redémarre, PM2 démarrera tous les processus que nous avions en cours d’exécution lorsque nous avons lancé pm2 save.

PM2 fait beaucoup de choses, je vais vous laisser découvrir le reste par vous même d’autres fonctions

Le mode cluster

CommandesDescription
pm2 start app.js -i 0Démarre un maximum de processus avec LB en fonction des CPU disponibles.

Listen

CommandesDescription
pm2 listAfficher l’état de tous les processus
pm2 jlistImpression de la liste des processus en JSON brut
pm2 prettylistImpression de la liste des processus en JSON embelli
pm2 describe 0Afficher toutes les informations concernant
pm2 monitSurveiller tous les processus

Logs

CommandesDescription
pm2 logs [--raw]Afficher tous les journaux de processus en streaming
pm2 flushVider tous les fichiers logs
pm2 reloadLogsRecharger tous les logs

Actions

CommandesDescription
pm2 stop allArrêter tous les processus
pm2 restart allRedémarrer tous les processus
pm2 reload allRechargement des temps d’arrêt 0s (pour les applications NETWORKED)
pm2 stop 0Arrêt d’un id de processus spécifique
pm2 restart 0Redémarrer un id de processus spécifique
pm2 delete 0Supprimer le processus de la liste
pm2 delete allSupprimer tous les processus de la liste

PM2 fait beaucoup de choses, dont la plupart sortent du cadre de cette brève introduction. A l’avenir, nous pourrions couvrir le mode cluster de PM2, la gestion des processus à distance et plus encore. Merci de votre lecture !

ludo

Développeur senior. Fullstack + DevOps