So definieren Sie verschiedene Stopp- / Neustartsignale mit Upstart


8

Ich fange an, alle unsere Systeme auf Upstart umzustellen, um unsere verschiedenen Anwendungsprozesse zu verwalten. Eine Sache, die mir ständig fehlt, ist die Fähigkeit, ein anderes Signal an den Prozess stopoder restartEreignisse zu senden .

Zum Beispiel führen wir unsere Webprozesse mit Unicorn aus . Unicorn hat eine großartige Signalverarbeitungs-API. Wenn ich den Prozess ordnungsgemäß neu laden möchte, sende ich dem Master-PID ein USR2-Signal. Um sie ordnungsgemäß herunterzufahren, sende ich einen QUIT-Befehl. TERM (Standardstoppsignal des Upstarts) bedeutet ein sofortiges Herunterfahren.

Ein anderes Beispiel ist die Verwendung von Resque . Um einen Arbeiter ordnungsgemäß herunterzufahren, sende ich ihm das QUIT-Signal. Das TERM-Signal bewirkt erneut ein sofortiges Herunterfahren, unabhängig davon, ob das Kind des Arbeiters gegabelt ist oder nicht.

Unterstützt Upstart benutzerdefinierte Signale? Ich kann es anscheinend nirgendwo finden, was mich beunruhigt, dass ich das "falsche Werkzeug für den Job" verwende.

Antworten:


4

Ubuntu 10.04 wird mit der Upstart-Version 0.6.6 geliefert, die die Parameter kill signalund enthältkill timeout , mit denen relevante Signal- und Timeout-Werte konfiguriert werden. Das "Reload" -Signal ist fest codiert SIGHUP.

Neuere Versionen von upstartführen den reload signalParameter ein - siehe weitere Antworten auf diese Frage für weitere Details.


Gut zu wissen, nicht sicher, warum das Nachladesignal fest codiert ist, aber ich denke, ich muss vorerst damit leben.
Localshred

Laut der Antwort von diclophis unten ist dies jetzt über möglich reload signal SIGUSR2, erfordert jedoch einen Upstart v 1.10.0.
Ghayes

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.