Ich möchte ein Shell-Skript ausführen, das eine Schleife enthält und das für immer funktionieren kann, was ich nicht möchte. Daher muss ich eine Zeitüberschreitung für das gesamte Skript festlegen.
Wie kann ich unter SuSE ein Timeout für das gesamte Shell-Skript einführen?
shell-script
timeout
Radek
quelle
quelle
timeout
oder ausschließt, nicht als Duplikatexpect
)Antworten:
Wenn GNU
timeout
nicht verfügbar ist, können Sie es verwendenexpect
(Mac OS X, BSD, ... verfügen normalerweise nicht über GNU-Tools und -Dienstprogramme).Beispiel bearbeiten :
quelle
timeout
selbst im Falle eines Timeouts 124 ist, andernfalls ist es der Rückgabestatus des Befehls (dies wird in der Antwort von Tim Kennedy erwähnt).Danke für die Klarstellung.
Der einfachste Weg, das zu erreichen, wonach Sie suchen, besteht darin, Ihr Skript mit der Schleife in einem Wrapper wie dem
timeout
Befehl aus dem GNU Coreutils-Paket auszuführen.Am Ende wird es viel einfacher sein, als eine eigene Timeout-Funktion zu schreiben, bei der Shells in der Regel nicht eingebaut sind.
quelle
gtimeout
auf meinem Setup (OSX) aufgerufen wird .Starten Sie einen Watchdog-Prozess in Ihrem Skript, um den übergeordneten Prozess abzubrechen, wenn er zu lange ausgeführt wird. Beispiel:
Dieses Skript wird nach fünf Sekunden vom Watchdog beendet.
quelle
Es gibt auch
cratimeout
von Martin Cracauer.quelle
quelle