J'ai node.js et pm2 installés sur un Pi (Raspbian). PM2 a été configuré pour démarrer via pm2 startup
et les scripts d'initialisation qu'il crée. Parfois, lorsque je redémarre, l'arrêt se bloque pendant quelques minutes sur:
A stop job is running for LSB: PM2 init script (... / 5min)
De temps en temps 1, je suppose que PM2 ne s'arrête pas correctement et se bloque pendant les 5 minutes complètes.
Sur ce système, je sais exactement quelles applications PM2 gère et je me fiche vraiment qu'elles s'arrêtent correctement.
Ma question est: comment puis-je réduire le délai d'attente de 5 minutes à, disons, 15 secondes environ? Où est-ce configuré?
J'ai lu sur un forum que c'était la DefaultTimeoutStopSec
clé dans /etc/systemd/system.conf , j'ai donc essayé de le régler sur "15s" mais cela n'a eu aucun effet. J'ai également essayé la même chose dans /etc/systemd/user.conf , mais aucun changement. Le délai est toujours réglé sur 5 minutes.
1 En fait, je sais précisément ce qui déclenche cela, mais les détails ne sont pas importants et l'effet est inévitable.
stop
script (par défaut) , vous pouvez le réécrire pour effectuer unforcestop
ou même pour tuerpm2
au lieu d'un arrêt gracieux.stop
dans le script d'init de pm2 ne rien faire du tout, et le laisser mourir naturellement à l'arrêt. C'est une solution terrible pour une utilisation générale, mais sur ce système particulier, c'est bien. Je veux quand même savoir comment changer le délai d'expiration de 5 minutes.Réponses:
Vous reconstruisez systemd à partir de la source, corrigeant le délai d'attente câblé
systemv-sysv-generator
deTimeoutSec=5min
ce que vous voulez. Ou vous demandez aux gens de systemd un bouton de commande quelque part dans les en-têtes Fedora / SUSE ou LSB.Ou, d'une part, vous abandonnez l'utilisation de ce
rc
script que vous avez et écrivez une unité de service systemd pour votre service, dont vous pouvez définir des délais d'expiration avec unTimeoutSec=
paramètre explicite , installé avec un fichier de paramètres d'installation/etc/systemd/system/pm2.service.d/timeout.conf
si nécessaire.Compte tenu de ceci , ceci , ceci , ceci , ceci et d'autres, la première règle de migration vers systemd s'applique également ici.
Lectures complémentaires
la source
/etc/systemd/system.conf
a une ligne#DefaultTimeoutStopSec=90s
qui peut être non commenté et modifié
la source
nvme
lecteur - pour des arrêts vraiment rapides, utilisez Alpine Linux (nonsystemd
)