Verkürzung des Zeitlimits für das Herunterfahren, wenn ein Stoppjob ausgeführt wird

16

Ich habe node.js und pm2 auf einem Pi (Raspbian) installiert. PM2 wurde so konfiguriert, dass es über pm2 startupund die von ihm erstellten Init-Skripte startet . Manchmal hängt das Herunterfahren beim Neustart einige Minuten lang an:

A stop job is running for LSB: PM2 init script (... / 5min)

Von Zeit zu Zeit 1 gehe ich davon aus, dass PM2 nicht ordnungsgemäß heruntergefahren wird und die gesamten 5 Minuten hängen bleibt.

Auf diesem System weiß ich genau, welche Apps PM2 verwaltet, und es ist mir wirklich egal, ob sie ordnungsgemäß heruntergefahren werden.

Meine Frage lautet: Wie kann ich die Zeitüberschreitung von 5 Minuten auf etwa 15 Sekunden reduzieren? Wo ist das konfiguriert?

Ich habe in einem Forum gelesen, dass es der DefaultTimeoutStopSecSchlüssel in /etc/systemd/system.conf ist , also habe ich versucht, dies auf "15s" zu setzen, aber es hatte keine Auswirkung. Ich habe das Gleiche auch in /etc/systemd/user.conf versucht, aber keine Änderung. Das Timeout ist immer noch auf 5 Minuten eingestellt.


1 Ich weiß genau, was dies auslöst, aber die Details sind nicht wichtig und der Effekt ist unvermeidlich.

Jason C
quelle
1
Wenn es ein (Standard-) stopSkript gibt, können Sie es neu schreiben forcestop, um pm2anstelle eines ordnungsgemäßen Herunterfahrens ein oder sogar einen Kill auszuführen .
Tigger
@Tigger Ich bin eigentlich zu einem ähnlichen Ergebnis gekommen. Aus Verzweiflung habe ich gerade stopin pm2s Init-Skript nichts gemacht und es beim Herunterfahren natürlich sterben lassen. Es ist eine schreckliche Lösung für den allgemeinen Gebrauch, aber auf diesem speziellen System ist es in Ordnung. Ich möchte immer noch wissen, wie ich das 5-Minuten-Timeout ändern kann.
Jason C

Antworten:

8

Wie kann ich das Zeitlimit von 5 Minuten auf etwa 15 Sekunden reduzieren?

Sie erstellen systemd von der Quelle neu und patchen das festverdrahtete Timeoutsystemv-sysv-generator von TimeoutSec=5minzu, was auch immer Sie wollen. Oder Sie fragen die Systemadministration nach einem Bedienknopf irgendwo in den Fedora / SUSE- oder LSB-Headern.

Oder Sie geben die Verwendung dieses rcSkripts auf, das Sie haben, und schreiben eine systemd-Serviceeinheit für Ihren Service, deren Zeitlimits Sie mit einer expliziten TimeoutSec=Einstellung festlegen können, die bei /etc/systemd/system/pm2.service.d/timeout.confBedarf mit einer Drop-In-Einstellungsdatei installiert wird .

In Anbetracht dieser , diese , diese , diese , diese und andere, die erste Regel für zu systemd Migration gilt auch hier.

Weitere Lektüre

JdeBP
quelle
15

/etc/systemd/system.conf hat eine Linie

#DefaultTimeoutStopSec=90s

was unkommentiert und geändert werden kann

Wolfgang Fahl
quelle
Ich habe in meinem Post erwähnt, dass eine Änderung keine Auswirkungen hat.
Jason C
45s in Arch Linux Einstellung ermöglicht eine schnelle Abschaltungen auf einem nvmeLaufwerk - für wirklich schnelle Abschaltungen verwenden Alpine Linux (keine systemd)
Stuart Cardall