web-dev-qa-db-fra.com

Réduction du délai d'arrêt pour "un travail d'arrêt en cours d'exécution"

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 init 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 temps1 ce que je suppose est 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 clé DefaultTimeoutStopSec dans / etc/systemd/system.conf, j'ai donc essayé de la régler sur "15s" mais cela n'a eu aucun effet. J'ai essayé la même chose dans / etc/systemd/user.conf, aussi, 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.

19
Jason C

Comment puis-je réduire le délai d'attente de 5 minutes à, disons, 15 secondes environ?

Vous recréez systemd à partir de la source, en corrigeant le délai câblé dans systemv-sysv-generator de TimeoutSec=5min Vers 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 script rc que vous avez et écrivez une unité de service systemd pour votre service, dont vous pouvez définir des délais d'attente avec un paramètre explicite TimeoutSec=, Installé avec un fichier de paramètres de dépôt dans /etc/systemd/system/pm2.service.d/timeout.conf si nécessaire.

Étant donné ce , ce , ce , ce , ce , et d'autres, le la première règle de migration vers systemd s'applique également ici.

Lectures complémentaires

9
JdeBP

/etc/systemd/system.conf a une ligne

#DefaultTimeoutStopSec=90s

qui peut être non commenté et modifié

19
Wolfgang Fahl