Recherche de site Web

Comment activer PM2 pour démarrer automatiquement l'application Node.js au démarrage du système


PM2 est un gestionnaire de processus puissant, largement utilisé et riche en fonctionnalités, prêt pour la production pour Node.js. Il est essentiel de redémarrer PM2 avec les processus qu'il gère à chaque démarrage/redémarrage de votre serveur. L'une des fonctionnalités clés de PM2 est la prise en charge d'un script de démarrage (généré dynamiquement en fonction du système d'initialisation par défaut de votre serveur), qui redémarre PM2 et vos processus à chaque redémarrage du serveur.

Le script de démarrage configure PM2 en tant que service sous le système init. Lorsque le serveur redémarrera, il redémarrera automatiquement PM2, qui redémarrera alors toutes les applications/processus Node.js qu'il gère.

Dans cet article, nous allons vous montrer comment déployer PM2 en tant que service pour gérer de manière fiable vos applications Node.js. Pour ce guide, le système de test utilise un service systemd et un gestionnaire système. Toutes les commandes de cet article seront exécutées en tant que root (utilisez sudo si nécessaire pour qu'un utilisateur disposant de privilèges puisse l'invoquer).

Générer un script de démarrage PM2 pour le système d'initialisation

PM2 est conçu pour fonctionner avec le système init par défaut sur un système Linux (qu'il peut détecter automatiquement) pour générer le script de démarrage et configurer PM2 . en tant que service pouvant être redémarré au démarrage du système.

Pour générer le script de démarrage, exécutez simplement la commande suivante en tant que root :

pm2 startup

La sous-commande startup indique à PM2 de détecter le système d'initialisation disponible, de générer la configuration et d'activer le système de démarrage.

Vous pouvez également spécifier explicitement le système d'initialisation comme ceci :

pm2 startup systems

Pour confirmer que le service de démarrage PM2 est opérationnel sous systemd, exécutez la commande suivante (remplacez le pm2-root.service par le véritable nom de votre service, vérifiez le résultat de la commande précédente ):

systemctl status pm2-root.service

Démarrer les applications/processus Node.js

Ensuite, vous souhaitez démarrer vos applications Node.js à l'aide de PM2 comme suit. Si vous les avez déjà opérationnels, démarrés via PM2, vous pouvez ignorer cette étape :

cd /var/www/backend/api-v1-staging/
pm2 start src/bin/www.js -n api-service-staging

Ensuite, vous devez enregistrer/sauvegarder la liste actuelle des processus que vous souhaitez gérer à l'aide de PM2 afin qu'ils réapparaissent au démarrage du système (à chaque fois qu'il est attendu ou qu'un redémarrage inattendu du serveur), en en exécutant la commande suivante :

pm2 save

Vérifier le démarrage automatique des applications Node.js PM2 au démarrage

Enfin, vous devez tester si la configuration fonctionne correctement. Redémarrez votre système et vérifiez si tous vos processus Node.js s'exécutent sous PM2.

pm2 ls
or
pm2 status

Notez que vous pouvez ressusciter manuellement les processus en exécutant la commande suivante :

pm2 resurrect

Désactivez le système de démarrage

Vous pouvez désactiver le système de démarrage en exécutant la sous-commande unstartup comme indiqué.

pm2 unstartup
OR
pm2 startup systemd

Pour mettre à jour le script de démarrage, désactivez-le d’abord, puis redémarrez-le comme indiqué.

pm2 unstartup
pm2 startup

Référence : Générateur de script de démarrage PM2.