(initscripts) Führen Sie einen Befehl aus. Wenn der Befehl nicht innerhalb von 10 Sekunden abgeschlossen ist, führen Sie einen anderen aus

(initscripts) Führen Sie einen Befehl aus. Wenn der Befehl nicht innerhalb von 10 Sekunden abgeschlossen ist, führen Sie einen anderen aus

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. timeoutIm 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.

verwandte Informationen