iducationducation
IndexArticlesFormationsProfilOutilsBibliothech
N°014 — 2026
Navigation
01Index02Articles03Formations04Profil05Outils06Bibliothech
N°014 — 2026
iducationducation
IndexArticlesFormationsProfilOutilsBibliothech
N°014 — 2026
Navigation
01Index02Articles03Formations04Profil05Outils06Bibliothech
N°014 — 2026
Formations
Node.js · Intermédiaire

PM2

Gérer, monitorer et déployer des applications Node.js en production avec PM2 — process manager, clusters, logs, déploiement automatisé et survie aux redémarrages.

PM2Node.jsNginxsystemd
01Introduction et installation02Commandes essentielles03Fichier de configuration ecosystem04Mode cluster et load balancing05Logs et monitoring06Persistance et démarrage automatique07Déploiement en production
Chapitre 1·12 min

Introduction et installation

Node.js est mono-thread. Un throw non attrapé, une promesse rejetée sans .catch, et le processus s'arrête. Sur un serveur de développement, c'est embêtant. En production, c'est une coupure de service.

PM2 — Process Manager 2 — résout ce problème. C'est un daemon qui surveille vos applications Node.js, les redémarre en cas de crash, les relance au reboot du serveur, et vous donne une vue en temps réel sur leur santé. Il fait aussi office de load balancer en répartissant la charge sur tous les cœurs CPU disponibles.

Ce que PM2 fait concrètement

Quand vous lancez une app avec PM2, vous ne lancez plus node app.js directement. PM2 devient le parent du processus. Il surveille son PID, intercepte les crashes, et relance l'app immédiatement. Depuis votre terminal, vous continuez à travailler — l'app tourne en arrière-plan sous la supervision de PM2.

Votre terminal
     │
     └── pm2 start app.js
              │
              └── PM2 daemon (toujours en vie)
                       │
                       ├── app.js (instance 0)
                       ├── app.js (instance 1)  ← mode cluster
                       └── app.js (instance 2)

PM2 centralise aussi les logs de toutes vos applications dans ~/.pm2/logs/. Plus de nohup node app.js > app.log 2>&1 & — PM2 gère ça proprement.

Installation

PM2 s'installe globalement via npm :

npm install -g pm2

Vérification :

pm2 --version
# 5.4.x

Sur un VPS où Node.js est installé via nvm, assurez-vous que la version de Node active est bien celle que vous voulez utiliser en production avant d'installer PM2 :

node --version
# v20.x.x
npm install -g pm2

PM2 utilise la version de Node avec laquelle il a été installé pour démarrer les processus. Si vous changez de version Node sans réinstaller PM2, les applications peuvent ne pas démarrer.

Démarrer une première application

pm2 start app.js

PM2 démarre l'application, lui assigne un ID (0, 1, 2…) et un nom dérivé du nom de fichier. Résultat :

┌────┬──────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┐
│ id │ name     │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │
├────┼──────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┤
│ 0  │ app      │ default     │ N/A     │ fork    │ 12345    │ 0s     │ 0    │ online    │
└────┴──────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┘

Le mode fork lance une seule instance. Le mode cluster en lance plusieurs — on y vient au chapitre 4.

Le daemon PM2

La première fois que vous lancez une commande PM2, il démarre un daemon en arrière-plan. Ce daemon persiste même après la fermeture du terminal. C'est lui qui surveille vos applications.

# Voir le statut du daemon
pm2 ping
# [PM2] Pong
 
# Tuer le daemon (arrête aussi toutes les apps)
pm2 kill

En pratique, vous ne tuez jamais le daemon en production. Il tourne en permanence sur votre serveur.


PM2 est installé, la première app tourne. Le chapitre suivant couvre les commandes du quotidien — celles que vous utiliserez tous les jours.

Suivant
Commandes essentielles

Développeur fullstack passionné. J'apprends en construisant et je documente tout — front, back, outils. Le code s'apprend mieux en public.

Naviguer

IndexTous les articlesFormationsProfilOutilsBibliothech

Ailleurs

GitHub RSS

Newsletter

Les articles, libs et découvertes. Une fois par semaine, pas plus.

© 2026 William LoreeConçu & codé à la main