"Zu schnell wieder auftauchen, gestoppt". Wie kann man UPSTART für 5 Minuten deaktivieren?

11

Früher hat der Init-Daemon Aufgaben deaktiviert, die zu schnell wieder aufgetaucht sind.

Ich entdeckte zu meiner Gefahr, dass UPSTART sie einfach aufhält. für immer.

Ich habe die Steuerelemente COUNT und INTERVAL gefunden, um einen Job zu stoppen, der schnell wieder erscheint, aber ich kann nicht finden, wie dieser Job nach einer bestimmten Wartezeit neu gestartet werden kann.

  • Dies ist für einen Remote-Server, der eine Verbindung über ssh herstellen muss, damit ich wieder hinein tunneln kann. Aber es gibt regelmäßig Verbindungsprobleme und der Job, der die SSH-Verbindung ausführt, stirbt! Ich habe dummerweise erwartet, dass Emporkömmling den Job am Laufen hält.

Gibt es eine Möglichkeit oder muss ich so etwas wie einen Cron-Job ausführen, um zu überprüfen, ob er ausgeführt wird, und wenn nicht, starten Sie ihn neu?

Keith
quelle

Antworten:

10

Upstart ermöglicht einen Ruhezustand nach dem Stopp, um den Neustart eines Jobs zu verzögern. Von http://upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job

post-stop exec sleep 5

Wenn der Job nun fehlschlägt, wartet er 5 Sekunden, bevor er erneut versucht, eine Verbindung herzustellen. Kombiniere das mit dem Setzen des Respawns auf ungefähr 10 Mal in 30 Sekunden und es sollte versuchen, für immer zu respawnen (es würde nur 7 Mal in 30 Sekunden versuchen, damit es nicht aus dem Respawn geworfen wird).

tgm4883
quelle
Ja, das ist wohl eine gute Lösung. Ich frage mich jedoch, ob Upstart die Möglichkeit haben sollte, eine Wartezeit anzugeben, bevor versucht wird, den Job erneut auszuführen. Ich mag die Idee wirklich nicht, nur die Jobs tot zu halten. Ich habe es sehr vorgezogen, wie init einen Job für fünf Minuten deaktiviert.
Keith
Ich denke, der Anwendungsfall, über den Sie sprechen, ist ziemlich niedrig. Wenn ein Job fehlschlägt, gibt es einen Grund dafür, daher sollte er behoben werden. Die meisten Menschen möchten nicht, dass der Job weiterhin versucht, zu starten und zu scheitern, da dies Protokolle mit wertvollen Informationen löschen oder andere katastrophale Folgen haben könnte. Ich denke, Sie verwenden Upstart für etwas, für das es nicht entwickelt wurde, daher kommen Standardmethoden zum Neustart möglicherweise nicht in Frage. Versucht die Netzwerkverbindung auf diesem Computer, die Verbindung wiederherzustellen, wenn die Verbindung unterbrochen wird? In diesem Fall können Sie möglicherweise Ihren Job beim Start des Netzwerks starten.
tgm4883
1
Ich bin sicher, Sie haben Recht, dass dies weit von einem Fall der "meisten Menschen" entfernt ist. Da ich in den letzten 20 Jahren Slackware und maßgeschneiderte Systeme gehackt habe, sind mir viele dieser Konzepte fremd. Könnten Sie mich in die richtige Richtung weisen, um den Start / Neustart des Ubuntu-Netzwerks anzupassen? Gott, dadurch fühle ich mich alt und berührungslos. Ich könnte es auf Slackware in 10 Sekunden tun.
Keith
1
Dies wird im Kochbuch behandelt. Sie empfehlen die Verwendung einer Post-Stop-Strophe: upstart.ubuntu.com/cookbook/#id379
jcomeau_ictx
1
Danke @jcomeau_ictx, genau das ist es. Ich denke, die Antwort sollte mit dem Link dazu aktualisiert werden . Upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job . Außerdem gibt es ein akzeptiertes Ticket und einen Patch für Keith Request Bugs.launchpad.net/upstart/+bug/252997 mit einer Respawn-Wartezeit vor dem erneuten Versuch .
Andre Miras