it-swarm.com.de

Bash Run-Befehl für eine bestimmte Zeit?

Ich mache Bash-Skript für meine Verwendung. Wie kann ich einen Befehl für eine bestimmte Zeit wie 20 Sekunden ausführen und den Befehl beenden? Ich habe viele Lösungen aus dem Internet ausprobiert, aber nichts funktioniert, ich habe auch den Timeout-Befehl ohne Erfolg versucht. Bitte gib mir eine Lösung dafür.

Danke im Voraus

Aktualisieren

zum Beispiel: Ich möchte diesen Befehl nach 10 Sekunden in Skript und Terminal ausführen 

some command
22
Umair Riaz

Hier sind einige Bash-Skripte und ein Programm namens timelimit, das Ihr Problem lösen kann. _. Kill-Prozess, nachdem er einige Zeit ausgeführt wurde

EDIT: Ich glaube, ich habe eine bessere Lösung gefunden. Versuchen Sie es mit dem Timeout-Programm. Auf der Manpage: "Timeout - Befehl mit Zeitlimit ausführen". Zum Beispiel:

timeout 5s sleep 10s

Der Befehl wird im Wesentlichen ausgeführt und nach der angegebenen Dauer wird er beendet.

47
Roberto Gomez

Auf Systemen, die den Befehl timeout nicht bereitstellen, können Sie Folgendes verwenden:

your-cmd & sleep 30 ; kill $!

Das wird möglicherweise lange laufen your-cmd mit einem Timeout von 30 Sekunden.

Wenn your-cmd nicht innerhalb von 30 Sekunden beendet wird, wird das TERM-Signal gesendet.

9
mato

Möchten Sie die Ausführung des Skripts planen? Dann ist cron dein Freund.

1
Matthew Graves

Ich schlage 2 Optionen vor:

  • Auf Systemen, auf denen Sie den Befehl timeout haben, können Sie ihn entsprechend man timeout verwenden.
  • Auf Systemen ohne (z. B. CentOS 5) können Sie das mit bash /usr/share/doc/bash-3.2/scripts/timeout bereitgestellte Skript verwenden. Verwenden Sie es gemäß den Nutzungsinformationen.
0
keypress