%20F%C3%BChren%20Sie%20einen%20Befehl%20aus.%20Wenn%20der%20Befehl%20nicht%20innerhalb%20von%2010%20Sekunden%20abgeschlossen%20ist%2C%20f%C3%BChren%20Sie%20einen%20anderen%20aus.png)
Unter (Debian) Linux möchte ich:
- Führen Sie einen Befehl aus.
- Wenn der Befehl nicht innerhalb von 10 Sekunden abgeschlossen ist, brechen Sie ihn ab und versuchen Sie es mit einem anderen Befehl.
Der Anwendungsfall ist:
Ich habe einen Daemon-Dienst, den ich ordnungsgemäß beenden möchte. Er kann durch Senden eines TCP-Befehls gestoppt werden. Wenn der TCP-Befehl nicht zurückkehrt, beenden Sie den Prozess mit Posix HUP.
Der Start-Stop-Daemon scheint dies nicht zu tun. Hat jemand einen Hinweis?
Antwort1
Ich habe den implementierten Debian-Entwicklern auch keine Medaille verliehen start-stop-daemon
.
Ich denke, Sie möchten einen Workaround über einen Daemon erstellen. timeout
Im GNU CoreUtils-Paket gibt es ein Tool namens, das Ihnen dabei helfen könnte:
timeout --kill-after=15 --signal=9 this_is_my_command || this_will_run_on_fail
Es wird ausgeführt this_is_my_command
, und wenn die Zeit abläuft, wird es mit Signal 9 (Hard Kill) beendet und der Befehl ausgeführt this_will_run_on_fail
.
Diese Informationen erhalte ich teilweise ausDasFrage.