PM2 (Process Manager 2) - Commandes CLI, gestion de processus Node.js et monitoring avancé

🏷️ Commandes & CLI 📅 13/03/2026 10:00:00 👤 Mezgani said
Pm2 Process Manager 2 Pm2 Cli Pm2 Commands Nodejs Node Process Manager Pm2 Logs Pm2 Monitoring Pm2 Deploy Pm2 Restart Devops Server Management Process Management Uptime Application Monitoring Nodejs Production

Commandes CLI PM2, gestion de processus Node.js, monitoring, logs, redémarrages automatiques et déploiement. Guide pratique pour développeurs et DevOps cherchant à optimiser la performance et la stabilité de leurs applications.

Ligne de commande :
pm2 start app.js
Description :

Démarre une application Node.js avec PM2

Options :
  • --name
  • -n
  • --instances
  • -i
  • --watch
  • --ignore-watch
  • --max-memory-restart
  • --max-restarts
  • --min-uptime
  • --kill-timeout
  • --restart-delay
  • --time
  • --no-autorestart
  • --cron
  • --no-daemon
  • --env
  • --interpreter
  • --node-args
  • --log
  • -l
  • --output
  • -o
  • --error
  • -e
  • --merge-logs
  • --log-date-format
  • --disable-logs
  • --attach
  • -a
  • --listen-timeout
  • --wait-ready
  • --shutdown-with-message
  • --force
  • -f

Ligne de commande :
pm2 start app.js --name mon-api
Description :

Démarre avec un nom personnalisé

Options :
  • --name
  • -n

Ligne de commande :
pm2 start app.js -i max
Description :

Démarre en mode cluster (tous les CPU)

Options :
  • -i
  • --instances

Ligne de commande :
pm2 start app.js -i 4
Description :

Démarre avec 4 instances

Options :
  • -i
  • --instances

Ligne de commande :
pm2 start app.js --watch
Description :

Démarre avec rechargement automatique (watch)

Options :
  • --watch
  • --ignore-watch

Ligne de commande :
pm2 start app.js --watch --ignore-watch="node_modules|logs|.git"
Description :

Watch avec exclusion de dossiers

Options :
  • --watch
  • --ignore-watch

Ligne de commande :
pm2 start app.js --max-memory-restart 500M
Description :

Redémarre si la mémoire dépasse 500 Mo

Options :
  • --max-memory-restart

Ligne de commande :
pm2 start app.js --cron "0 0 * * *"
Description :

Redémarre selon une expression cron (minuit)

Options :
  • --cron

Ligne de commande :
pm2 start app.js --no-autorestart
Description :

Désactive le redémarrage automatique

Options :
  • --no-autorestart

Ligne de commande :
pm2 start app.js --env production
Description :

Démarre avec l'environnement production

Options :
  • --env

Ligne de commande :
pm2 start app.js --node-args="--max-old-space-size=4096"
Description :

Passe des arguments à Node.js

Options :
  • --node-args

Ligne de commande :
pm2 start app.js -- --port=3000
Description :

Passe des arguments à l'application

Options :
  • --

Ligne de commande :
pm2 start app.js -l combined.log -o out.log -e err.log
Description :

Définit les fichiers de logs

Options :
  • -l
  • --log
  • -o
  • --output
  • -e
  • --error

Ligne de commande :
pm2 start app.js --merge-logs
Description :

Fusionne les logs de toutes les instances

Options :
  • --merge-logs

Ligne de commande :
pm2 start app.js --log-date-format "YYYY-MM-DD HH:mm:ss"
Description :

Format personnalisé des dates dans les logs

Options :
  • --log-date-format

Ligne de commande :
pm2 start app.js --disable-logs
Description :

Désactive l'écriture des logs

Options :
  • --disable-logs

Ligne de commande :
pm2 start app.js --wait-ready --listen-timeout 10000
Description :

Attend que l'application soit prête (10s)

Options :
  • --wait-ready
  • --listen-timeout

Ligne de commande :
pm2 start app.js --kill-timeout 5000
Description :

Timeout de 5s avant kill forcé

Options :
  • --kill-timeout

Ligne de commande :
pm2 start npm --name "mon-app" -- run start
Description :

Démarre un script npm

Options :
  • --name

Ligne de commande :
pm2 start yarn --name "mon-app" -- start
Description :

Démarre un script yarn

Options :
  • --name

Ligne de commande :
pm2 start pnpm --name "mon-app" -- start
Description :

Démarre un script pnpm

Options :
  • --name

Ligne de commande :
pm2 start python --name "mon-script" -- script.py
Description :

Démarre un script Python

Options :
  • --name
  • --interpreter

Ligne de commande :
pm2 start "java -jar monapp.jar" --name "mon-java"
Description :

Démarre une application Java

Options :
  • --name

Ligne de commande :
pm2 start "python -m http.server 8080" --name "http-server"
Description :

Démarre un serveur HTTP Python

Options :
  • --name

Ligne de commande :
pm2 start ecosystem.config.js
Description :

Démarre avec un fichier de configuration

Options :
  • --only
  • --env
  • --no-daemon
  • --attach

Ligne de commande :
pm2 start ecosystem.config.js --only mon-api
Description :

Démarre uniquement une application spécifique

Options :
  • --only

Ligne de commande :
pm2 start ecosystem.config.js --env production
Description :

Démarre avec l'environnement production

Options :
  • --env

Ligne de commande :
pm2 stop mon-api
Description :

Arrête une application

Options :
  • all
  • --silent

Ligne de commande :
pm2 stop all
Description :

Arrête toutes les applications

Ligne de commande :
pm2 restart mon-api
Description :

Redémarre une application

Options :
  • --update-env
  • --cron-restart
  • --env

Ligne de commande :
pm2 restart mon-api --update-env
Description :

Redémarre en mettant à jour les variables d'environnement

Options :
  • --update-env

Ligne de commande :
pm2 restart all
Description :

Redémarre toutes les applications

Ligne de commande :
pm2 reload mon-api
Description :

Recharge sans downtime (0-second reload)

Options :
  • --update-env
  • --env

Ligne de commande :
pm2 reload all
Description :

Recharge toutes les applications sans downtime

Ligne de commande :
pm2 reload ecosystem.config.js --only mon-api
Description :

Recharge depuis le fichier ecosystem

Options :
  • --only

Ligne de commande :
pm2 gracefulReload all
Description :

Recharge gracieuse (envoie SIGUSR2)

Ligne de commande :
pm2 delete mon-api
Description :

Supprime une application de PM2

Options :
  • all

Ligne de commande :
pm2 delete all
Description :

Supprime toutes les applications

Ligne de commande :
pm2 list
Description :

Liste toutes les applications gérées par PM2

Options :
  • --sort
  • --json
  • --help

Ligne de commande :
pm2 ls
Description :

Alias de pm2 list

Options :
  • --sort

Ligne de commande :
pm2 status
Description :

Alias de pm2 list

Options :
  • --sort

Ligne de commande :
pm2 show mon-api
Description :

Affiche les détails d'une application

Options :
  • --json

Ligne de commande :
pm2 desc mon-api
Description :

Alias de pm2 show

Ligne de commande :
pm2 info mon-api
Description :

Alias de pm2 show

Ligne de commande :
pm2 describe mon-api
Description :

Alias de pm2 show

Ligne de commande :
pm2 logs
Description :

Affiche les logs de toutes les applications

Options :
  • --raw
  • --json
  • --format
  • --timestamp
  • --lines
  • -n
  • --err
  • --out
  • --nostream
  • --highlight

Ligne de commande :
pm2 logs mon-api
Description :

Affiche les logs d'une application spécifique

Options :
  • --lines
  • -n
  • --err
  • --out
  • --timestamp

Ligne de commande :
pm2 logs mon-api --lines 100
Description :

Affiche les 100 dernières lignes

Options :
  • --lines
  • -n

Ligne de commande :
pm2 logs --err
Description :

Affiche uniquement les logs d'erreur

Options :
  • --err

Ligne de commande :
pm2 logs --out
Description :

Affiche uniquement les logs de sortie

Options :
  • --out

Ligne de commande :
pm2 logs --raw
Description :

Affiche les logs bruts (sans formatage)

Options :
  • --raw

Ligne de commande :
pm2 logs --json
Description :

Affiche les logs au format JSON

Options :
  • --json

Ligne de commande :
pm2 logs --timestamp
Description :

Force l'affichage des timestamps

Options :
  • --timestamp

Ligne de commande :
pm2 flush
Description :

Vide tous les fichiers de logs

Ligne de commande :
pm2 flush mon-api
Description :

Vide les logs d'une application

Ligne de commande :
pm2 reloadLogs
Description :

Recharge les fichiers de logs (après rotation)

Ligne de commande :
pm2 monit
Description :

Ouvre le monitoring en temps réel

Ligne de commande :
pm2 monitor
Description :

Alias de pm2 monit

Ligne de commande :
pm2 scale mon-api 4
Description :

Scale l'application à 4 instances

Options :
  • +n
  • -n

Ligne de commande :
pm2 scale mon-api +2
Description :

Ajoute 2 instances

Options :
  • +n

Ligne de commande :
pm2 scale mon-api -1
Description :

Retire 1 instance

Options :
  • -n

Ligne de commande :
pm2 save
Description :

Sauvegarde la liste des processus pour redémarrage

Options :
  • --force
  • -f

Ligne de commande :
pm2 save --force
Description :

Force la sauvegarde

Options :
  • --force
  • -f

Ligne de commande :
pm2 resurrect
Description :

Restaure les processus précédemment sauvegardés

Ligne de commande :
pm2 unstartup
Description :

Désactive le démarrage automatique

Options :
  • platform

Ligne de commande :
pm2 startup
Description :

Configure le démarrage automatique au boot

Options :
  • systemd
  • upstart
  • launchd
  • rcd
  • openrc
  • vsystem

Ligne de commande :
pm2 startup systemd
Description :

Configure pour systemd (Linux)

Options :
  • -u
  • --user
  • --hp
  • --service-name

Ligne de commande :
pm2 startup systemd -u monuser
Description :

Configure pour un utilisateur spécifique

Options :
  • -u
  • --user

Ligne de commande :
pm2 startup upstart
Description :

Configure pour Upstart (Ubuntu 14.04)

Ligne de commande :
pm2 startup launchd
Description :

Configure pour launchd (macOS)

Ligne de commande :
pm2 unstartup systemd
Description :

Désactive le démarrage automatique pour systemd

Ligne de commande :
pm2 ping
Description :

Vérifie la connexion à PM2

Ligne de commande :
pm2 update
Description :

Met à jour PM2 en mémoire (après mise à jour npm)

Ligne de commande :
pm2 updatePM2
Description :

Alias de pm2 update

Ligne de commande :
pm2 kill
Description :

Tue le démon PM2

Ligne de commande :
pm2 reset mon-api
Description :

Réinitialise les compteurs de redémarrage

Options :
  • all

Ligne de commande :
pm2 reset all
Description :

Réinitialise tous les compteurs

Ligne de commande :
pm2 sendSignal SIGUSR2 mon-api
Description :

Envoie un signal à une application

Options :
  • SIGINT
  • SIGTERM
  • SIGUSR1
  • SIGUSR2
  • SIGHUP

Ligne de commande :
pm2 env 0
Description :

Affiche les variables d'environnement de l'instance 0

Options :
  • id

Ligne de commande :
pm2 jlist
Description :

Liste au format JSON

Ligne de commande :
pm2 prettylist
Description :

Liste au format JSON formaté

Ligne de commande :
pm2 report
Description :

Génère un rapport de diagnostic complet

Ligne de commande :
pm2 link <secret> <public>
Description :

Lie l'instance à PM2 Plus (Keymetrics)

Options :
  • --name

Ligne de commande :
pm2 unlink
Description :

Délie l'instance de PM2 Plus

Ligne de commande :
pm2 web
Description :

Lance l'API web de monitoring (port 9615)

Options :
  • --port
  • --host
  • --help

Ligne de commande :
pm2 web --port 8080 --host 0.0.0.0
Description :

Lance l'API web sur un port personnalisé

Options :
  • --port
  • --host

Ligne de commande :
pm2 serve /chemin/vers/dossier 8080
Description :

Sert un dossier statique via HTTP

Options :
  • --name
  • --spa
  • --basic-auth-username
  • --basic-auth-password
  • --help

Ligne de commande :
pm2 serve /var/www/html 8080 --name mon-site --spa
Description :

Sert un site SPA (Single Page Application)

Options :
  • --name
  • --spa

Ligne de commande :
pm2 serve /var/www/html 8080 --basic-auth-username admin --basic-auth-password secret
Description :

Sert avec authentification basique

Options :
  • --basic-auth-username
  • --basic-auth-password

Ligne de commande :
pm2 deploy ecosystem.config.js production setup
Description :

Configure le déploiement sur le serveur distant

Options :
  • setup
  • update
  • revert
  • exec
  • list

Ligne de commande :
pm2 deploy ecosystem.config.js production
Description :

Déploie l'application sur l'environnement production

Options :
  • --force

Ligne de commande :
pm2 deploy ecosystem.config.js production revert 1
Description :

Revient au déploiement précédent

Options :
  • revert

Ligne de commande :
pm2 deploy ecosystem.config.js production exec "npm run migrate"
Description :

Exécute une commande sur le serveur distant

Options :
  • exec

Ligne de commande :
pm2 deploy ecosystem.config.js list
Description :

Liste les déploiements disponibles

Options :
  • list

Ligne de commande :
pm2 ecosystem
Description :

Génère un fichier ecosystem.config.js de base

Options :
  • --help

Ligne de commande :
pm2 init
Description :

Alias de pm2 ecosystem

Ligne de commande :
pm2 generate
Description :

Génère un fichier de configuration JSON

Options :
  • json
  • js
  • yaml

Ligne de commande :
pm2 install pm2-logrotate
Description :

Installe le module de rotation des logs

Options :
  • install
  • uninstall
  • start
  • stop
  • restart
  • list
  • publish
  • help

Ligne de commande :
pm2 module:install pm2-logrotate
Description :

Alias de pm2 install

Ligne de commande :
pm2 uninstall pm2-logrotate
Description :

Désinstalle un module

Options :
  • uninstall

Ligne de commande :
pm2 list-modules
Description :

Liste les modules installés

Ligne de commande :
pm2 module:list
Description :

Alias de pm2 list-modules

Ligne de commande :
pm2 conf <module> set <key> <value>
Description :

Configure un module

Options :
  • set
  • get
  • delete
  • clear

Ligne de commande :
pm2 set pm2-logrotate:max_size 10M
Description :

Définit la taille max des logs à 10 Mo

Options :
  • set

Ligne de commande :
pm2 set pm2-logrotate:retain 30
Description :

Garde 30 fichiers de logs

Options :
  • set

Ligne de commande :
pm2 set pm2-logrotate:compress true
Description :

Active la compression des logs

Options :
  • set

Ligne de commande :
pm2 install pm2-server-monit
Description :

Installe le module de monitoring serveur

Options :
  • install

Ligne de commande :
pm2 install pm2-mongodb
Description :

Installe le module MongoDB

Options :
  • install

Ligne de commande :
pm2 install pm2-mysql
Description :

Installe le module MySQL

Options :
  • install

Ligne de commande :
pm2 install pm2-redis
Description :

Installe le module Redis

Options :
  • install

Ligne de commande :
pm2 install pm2-elasticsearch
Description :

Installe le module Elasticsearch

Options :
  • install

Ligne de commande :
pm2 install pm2-postgres
Description :

Installe le module PostgreSQL

Options :
  • install

Ligne de commande :
pm2 interact <secret> <public>
Description :

Connecte PM2 à PM2 Plus (Keymetrics)

Options :
  • --info_node

Ligne de commande :
pm2 trigger <app_name> <action_name> <params>
Description :

Déclenche une action personnalisée

Options :
  • --help

Ligne de commande :
pm2 pull <app_name>
Description :

Met à jour le code depuis Git (déploiement)

Ligne de commande :
pm2 forward <app_name>
Description :

Redémarre après pull (déploiement)

Ligne de commande :
pm2 backward <app_name>
Description :

Revient à la version précédente (déploiement)

Ligne de commande :
pm2 launch <app_name>
Description :

Démarre l'application après déploiement

Ligne de commande :
pm2 connect <secret> <public>
Description :

Alias de pm2 link

Ligne de commande :
pm2 disconnect
Description :

Alias de pm2 unlink

Ligne de commande :
pm2 axm
Description :

Active le module d'actions personnalisées

Ligne de commande :
pm2 runtime
Description :

Lance PM2 en mode runtime (pour Docker)

Options :
  • start
  • stop
  • restart
  • reload
  • delete
  • list

Ligne de commande :
pm2-runtime start app.js
Description :

Démarre une application en mode runtime (Docker)

Options :
  • -i
  • --instances
  • --watch
  • --env
  • --name
  • --no-autorestart
  • --max-memory-restart

Ligne de commande :
pm2-runtime start ecosystem.config.js
Description :

Démarre depuis ecosystem en mode runtime

Options :
  • --only
  • --env

Ligne de commande :
pm2-docker start app.js
Description :

Alias de pm2-runtime (déprécié)

Ligne de commande :
pm2 status --no-color
Description :

Affiche le statut sans couleurs

Options :
  • --no-color

Ligne de commande :
pm2 list --sort [name|id|pid|memory|cpu|status|uptime]
Description :

Trie la liste des processus

Options :
  • --sort

Ligne de commande :
pm2 list --sort memory
Description :

Trie par utilisation mémoire

Options :
  • --sort

Ligne de commande :
pm2 attach mon-api
Description :

Attache à l'application pour voir les logs en direct

Ligne de commande :
pm2 launch <app_name> <action>
Description :

Lance une action de déploiement

Options :
  • pre-deploy
  • post-deploy

Ligne de commande :
pm2 publish <app_name>
Description :

Publie une application sur PM2 Plus

Ligne de commande :
pm2 save --force
Description :

Force la sauvegarde de la configuration

Options :
  • --force
  • -f

Ligne de commande :
pm2 dump
Description :

Alias de pm2 save

Ligne de commande :
pm2 kill --timeout 10000
Description :

Tue PM2 après un timeout

Options :
  • --timeout

Ligne de commande :
pm2 send SIGINT mon-api
Description :

Envoie SIGINT à l'application

Ligne de commande :
pm2 send SIGTERM all
Description :

Envoie SIGTERM à toutes les applications

Ligne de commande :
pm2 start app.js --max-restarts 10
Description :

Limite à 10 redémarrages

Options :
  • --max-restarts

Ligne de commande :
pm2 start app.js --min-uptime 10000
Description :

Considère l'application stable après 10s

Options :
  • --min-uptime

Ligne de commande :
pm2 start app.js --restart-delay 5000
Description :

Délai de 5s avant redémarrage

Options :
  • --restart-delay

Ligne de commande :
pm2 start app.js --time
Description :

Ajoute un timestamp aux logs

Options :
  • --time

Ligne de commande :
pm2 start app.js --namespace production
Description :

Définit un namespace pour l'application

Options :
  • --namespace

Ligne de commande :
pm2 start app.js --disable-source-map-support
Description :

Désactive le support des source maps

Options :
  • --disable-source-map-support

Ligne de commande :
pm2 start app.js --public <key>
Description :

Associe à un bucket PM2 Plus

Options :
  • --public

Ligne de commande :
pm2 start app.js --machine-name <name>
Description :

Définit le nom de la machine pour PM2 Plus

Options :
  • --machine-name

Ligne de commande :
pm2 start app.js --unique-name <name>
Description :

Nom unique pour PM2 Plus

Options :
  • --unique-name

Ligne de commande :
pm2 start app.js --treekill
Description :

Tue l'arbre de processus complet

Options :
  • --treekill
  • --no-treekill

Ligne de commande :
pm2 start app.js --kill-retry-time 100
Description :

Temps entre les tentatives de kill (ms)

Options :
  • --kill-retry-time

Ligne de commande :
pm2 start app.js --vizion
Description :

Active l'intégration Git (Vizion)

Options :
  • --vizion
  • --no-vizion

Ligne de commande :
pm2 start app.js --versioning
Description :

Active le versioning

Options :
  • --versioning

Ligne de commande :
pm2 start app.js --post-start <command>
Description :

Exécute une commande après le démarrage

Options :
  • --post-start