GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Timeout-Befehl für Anfänger erklärt (mit Beispielen)

Wenn Sie einen Befehl unter Linux ausführen, möchten Sie ihn manchmal für eine bestimmte Zeit ausführen. Es gibt ein Befehlszeilenprogramm - timeout - das speziell für diesen Zweck entwickelt wurde. In diesem Artikel werden wir die Grundlagen dieses Befehls anhand einiger leicht verständlicher Beispiele besprechen.

Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele in diesem Tutorial auf einem Ubuntu 18.04 LTS-Rechner getestet wurden.

Linux-Timeout-Befehl

Wie der Name schon sagt, können Sie mit dem Timeout-Befehl in Linux einen Befehl mit einem Zeitlimit ausführen. Es folgt die Syntax:

timeout [OPTION] DURATION COMMAND [ARG]...

Und so erklärt es die Manpage des Tools:

timeout - run a command with a time limit
Start COMMAND, and kill it if still running after DURATION

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie dieses Tool funktioniert.

Q1. Wie verwende ich den Timeout-Befehl?

Die grundlegende Verwendung ist ziemlich einfach - führen Sie einfach 'timeout' aus, indem Sie in der Eingabe einen Zeitüberschreitungswert (in Sekunden) sowie den auszuführenden Befehl angeben.

Wenn Sie zum Beispiel einen Ping-Befehl nach 5 Sekunden abbrechen möchten, können Sie Timeout in diesem Fall wie folgt verwenden.

timeout 5 ping google.com

Q2. Wie erhalte ich den Exit-Status des Befehls in der Ausgabe?

Wenn der Timeout-Befehl erfolgreich ist, gibt er standardmäßig 124 als Exit-Status zurück. Nachfolgend ein Beispiel:

Im ersten Fall habe ich den Timeout-Befehl erfolgreich ausgeführt, und wie Sie sehen können, war der Exit-Status 124. Beim zweiten Durchlauf habe ich den Befehl jedoch mit Strg + C und in diesem Fall den Exit-Status zwangsweise beendet war 0.

Aber falls Sie möchten, dass timeout den Status des Eingabebefehls zurückgibt, selbst wenn timeout erfolgreich ausgeführt wird, müssen Sie die Befehlszeilenoption --preserve-status verwenden.

Zum Beispiel:

timeout --preserve-status 5 ping google.com

Q3. Wie ändere ich das Signal-Timeout, das gesendet wird?

Es hat keinen Sinn zu vermuten, dass Timeout funktioniert, indem ein Signal an den Eingabebefehl gesendet wird, sodass letzterer die Ausführung stoppt, wenn sich die Frist nähert. Standardmäßig SIGTERM wird vom Befehl verwendet.

Wenn Sie möchten, können Sie jedoch das von timeout gesendete Signal ändern. Dazu müssen Sie die Befehlszeilenoption -s verwenden und als Eingabe das Signal angeben, das timeout senden soll.

Zum Beispiel:

timeout -s SIGKILL [COMMAND]

Führen Sie den folgenden Befehl aus, um eine Liste verfügbarer Signale abzurufen, die Sie senden können:

kill -l

Q4. Wie kann man dafür sorgen, dass Timeout automatisch ein KILL-Signal sendet?

Manchmal kann es vorkommen, dass Sie auf einen Eingabebefehl stoßen, der auch dann noch ausgeführt wird, wenn timeout das erste Signal gesendet hat. Für solche Fälle bietet timeout eine Option '--kill-after'.

So erklärt es die Manpage:

-k, --kill-after=DURATION

              also send a KILL signal if COMMAND is still running

              this long after the initial signal was sent

Wie Sie sehen können, müssen Sie eine Dauer angeben, um Timeout mitzuteilen, nach wie viel Zeit dieses Signal gesendet werden soll.

Schlussfolgerung

Abhängig von der Art Ihrer Arbeit kann sich der Timeout-Befehl als recht praktisches Werkzeug erweisen. Hier, in diesem Tutorial, haben wir die meisten Optionen besprochen, die dieses Dienstprogramm bietet. Sobald Sie mit dem Üben fertig sind, können Sie mehr über Timeout erfahren, indem Sie zur Manpage gehen.


Linux
  1. Linux-cksum-Befehl für Anfänger erklärt (mit Beispielen)

  2. Linux wc Befehl für Anfänger erklärt (6 Beispiele)

  3. Linux-Unexpand-Befehl für Anfänger erklärt (mit Beispielen)

  4. Linux-Exit-Befehl für Anfänger erklärt (mit Beispielen)

  5. Linux-objdump-Befehl für Anfänger erklärt (7 Beispiele)

Linux cut Befehl für Anfänger erklärt (mit Beispielen)

Linux-Verfügbarkeitsbefehl für Anfänger mit Beispielen erklärt

Linux dd-Befehl für Anfänger erklärt (8 Beispiele)

Linux tr Command Tutorial für Anfänger (mit Beispielen)

Linux-mv-Befehl für Anfänger erklärt (8 Beispiele)

Linux-Host-Befehl für Anfänger erklärt (8 Beispiele)