GNU/Linux >> Linux Esercitazione >  >> Linux

Spiegazione del comando di timeout di Linux per i principianti (con esempi)

A volte, quando esegui un comando in Linux, potresti volerlo eseguire per un determinato periodo di tempo. Esiste un'utilità della riga di comando:timeout - che è stato sviluppato appositamente per questo scopo. In questo articolo, discuteremo le basi di questo comando usando alcuni esempi di facile comprensione.

Ma prima di farlo, vale la pena ricordare che tutti gli esempi in questo tutorial sono stati testati su una macchina Ubuntu 18.04 LTS.

Comando di timeout Linux

Come suggerisce il nome, il comando timeout in Linux ti consente di eseguire un comando con un limite di tempo. Di seguito è riportata la sua sintassi:

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

Ed ecco come lo spiega la pagina man dello strumento:

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

Di seguito sono riportati alcuni esempi in stile Domande e risposte che dovrebbero darti un'idea migliore di come funziona questo strumento.

Q1. Come utilizzare il comando di timeout?

L'utilizzo di base è piuttosto semplice:esegui semplicemente 'timeout' specificando in input un valore di timeout (considerato in secondi) e il comando che desideri eseguire.

Ad esempio, se desideri eseguire il timeout di un comando ping dopo 5 secondi, ecco come puoi utilizzare il timeout in questo caso.

timeout 5 ping google.com

Q2. Come ottenere lo stato di uscita del comando in output?

Per impostazione predefinita, se il comando di timeout ha esito positivo, restituisce 124 come stato di uscita. Segue un esempio:

Nel primo caso, ho lasciato che il comando di timeout venisse eseguito correttamente e, come puoi vedere, lo stato di uscita era 124. Tuttavia, durante la seconda esecuzione, ho ucciso forzatamente il comando usando Ctrl+C e, in tal caso, lo stato di uscita era 0.

Ma nel caso in cui desideri che il timeout restituisca lo stato del comando di input anche se il timeout viene eseguito correttamente, dovrai utilizzare l'opzione della riga di comando --preserve-status.

Ad esempio:

timeout --preserve-status 5 ping google.com

T3. Come modificare l'invio del timeout del segnale?

Non ha senso indovinare che il timeout funziona inviando un segnale al comando di input in modo che quest'ultimo smetta di essere eseguito quando si avvicina la scadenza. Per impostazione predefinita, SIGTERM viene utilizzato dal comando.

Tuttavia, se lo desideri, puoi modificare il segnale inviato entro il timeout. Per questo, dovrai utilizzare l'opzione della riga di comando -s e specificare come input il segnale che desideri inviare al timeout.

Ad esempio:

timeout -s SIGKILL [COMMAND]

Per recuperare un elenco di segnali disponibili che puoi inviare, esegui il comando seguente:

kill -l

Q4. Come fare in modo che il timeout invii automaticamente il segnale KILL?

A volte, potresti riscontrare un comando di input che continua a essere eseguito anche dopo che il timeout ha inviato il segnale iniziale. Per casi come questi, il timeout offre un'opzione "--kill-after".

Ecco come lo spiega la pagina man:

-k, --kill-after=DURATION

              also send a KILL signal if COMMAND is still running

              this long after the initial signal was sent

Quindi, come puoi vedere, devi specificare una durata per far sapere al timeout dopo quanto tempo deve essere inviato questo segnale.

Conclusione

A seconda del tipo di lavoro che svolgi, il comando di timeout può rivelarsi uno strumento piuttosto utile. Qui, in questo tutorial, abbiamo discusso la maggior parte delle opzioni offerte da questa utility. Una volta che hai finito di esercitarti, puoi saperne di più sul timeout andando alla sua pagina man.


Linux
  1. Comando Linux cksum spiegato per principianti (con esempi)

  2. Spiegazione del comando Linux wc per principianti (6 esempi)

  3. Spiegazione del comando di Linux unexpand per principianti (con esempi)

  4. Spiegazione del comando di uscita di Linux per principianti (con esempi)

  5. Spiegazione del comando objdump di Linux per principianti (7 esempi)

Spiegazione del comando di taglio Linux per principianti (con esempi)

Spiegazione del comando di uptime di Linux per principianti con esempi

Spiegazione del comando Linux dd per principianti (8 esempi)

Linux tr Command Tutorial per principianti (con esempi)

Spiegazione del comando Linux mv per principianti (8 esempi)

Spiegazione del comando host Linux per principianti (8 esempi)