Andocken des Andock-Containers von innen

9

Ich habe einen Cronjob in einem Andockcontainer ausgeführt, der prüft, ob alle Dienste wie erwartet ausgeführt werden. Wenn dieser Cronjob feststellt, dass ein Problem vorliegt, möchte ich den Andock-Container stoppen (von innen ...)

Leider stoppt exit nur mein Cronjob-Skript

    
Nils Ziehn 21.07.2015, 11:52
quelle

2 Antworten

2

Grundsätzlich müssen Sie PID 1 beenden, um den Container zu stoppen.

Ich dachte anfangs, dass kill -s SIGKILL 1 funktionieren würde, aber PID 1 ist geschützt, also nicht.

Wie von @Thomasleveil vorgeschlagen, könnten Sie Code wie trap "exit" SIGINT SIGTERM zum PID 1-Skript hinzufügen, was bedeutet, dass der Prozess beendet wird, wenn eine kill -s SIGINT 1 gesendet wird. Ich bevorzuge diese Methode etwas zu der, die Sie entwickelt haben (den Kindprozess direkt zu töten), da sie dem Elternprozess eine Möglichkeit zum Aufräumen gibt und auch der Elternprozess die PID des Kindprozesses ohne awk finden kann / p>

Wenn Sie jedoch mehrere Prozesse ausführen, sollten Sie etwas wie supervisord oder runit in Erwägung ziehen.

    
Adrian Mouat 21.07.2015 12:46
quelle
1

Ich habe versucht, Prozess 1 ohne Erfolg zu beenden.

Probieren Sie den Kommentar von @ zero323 mit shutdown -h now aus. Es funktioniert gut (sorry, ich kann nicht direkt dafür stimmen, da es nicht in der Liste der Antworten ist).

    
Charles Walker 18.08.2016 12:08
quelle

Tags und Links