Come utilizzare il comando timeout in Linux?

Come utilizzare il comando timeout in Linux?
Nel sistema operativo Linux, alcuni processi funzionano continuamente e per ucciderli dopo un certo periodo di tempo viene utilizzata un'utilità di linea di comando chiamata "timeout".

IL "tempo scaduto"Consente all'utente di eseguire un comando e quindi terminarlo dopo che è passato un tempo impostato. In altre parole, "tempo scaduto"Rende più facile eseguire un comando per un certo periodo di tempo. IL "tempo scaduto"Il comando è incluso nel kit di utilità Core GNU, che viene fornito di serie con quasi tutti i sistemi Linux.

Nella scrittura, esamineremo i fondamenti di questo comando con esempi.

Sintassi

Il comando "timeout" ha la seguente sintassi:

timeout [opzione] [durata] [comando]

La durata può essere nei numeri interi galleggianti con il suffisso del tempo:

S/NO suffisso (quando non è fissata unità di suffisso, considera il secondo)
M = minuto
H = ora
d = giorno

Usando il comando "timeout"

Ping il tuo sistema con un indirizzo IP, continuerà fino a quando non lo interromperai premendo Ctrl+C.

Ora, imposta un tempo per terminarlo utilizzando il comando "timeout". Ad esempio, imposterò il tempo su 7, il che significa che l'esecuzione del comando "ping" si fermerà dopo 7 secondi.

Seguire il comando di seguito per impostare il limite di tempo:

$ timeout 7 ping 192.168.18.213

Impostazione del timeout con un'altra unità temporale

Allo stesso modo, possiamo ping "Facebook.com "anche, usando:

$ ping Facebook.com

Per fermare il comando "ping" dopo 1 minuto, digitare un comando sotto punteggio in un terminale:

$ timeout 1m ping facebook.com

Mostrando lo stato di uscita

Molti programmi hanno inviato un valore/codice alla shell quando terminano.

Ad esempio, termina il seguente processo prima di colpire il suo limite di tempo che è 6 secondi. Premi CTRL+C e controlla lo stato di uscita digitando "Echo $". Restituirà "0" nell'output:

$ timeout 6 ping facebook.com

L'interruzione di un processo in esecuzione fornirà sempre un codice di uscita "0".

Preservare lo stato

La conservazione dello stato restituisce uno stato di uscita anche se lo terminiamo con forza usando CTRL+C. Il comando sarebbe:

$ timeout-Preserve-Status 2 ping Facebook.com

E per controllare il codice di uscita, digitare:

$ echo $?

Ora, lo stato di uscita sarà 143.

Invio di segnali al timeout

Il comando "timeout" invia un segnale al processo per terminarlo.

Per controllare i segnali disponibili, utilizzare il comando "Kill":

$ kill -l

Verrà visualizzato un elenco di tutti i segnali disponibili.

IL "-S" (-signal) l'opzione consente di impostare un segnale da fornire:

$ timeout -s

Il comando "timeout" utilizza il "SIGTERM" per fermare un processo, ma molti processi ignorano il segnale "Sigterm". Per terminare con forza un processo utilizzando il segnale "Sigkill", non può essere ignorato da alcun processo.

Invio di Sigkill al comando ping dopo 2 secondi, digitare:

$ sudo timeout -s Sigkill ping Facebook.com

Puoi anche inviare segnali utilizzando un numero di segnale anziché il nome di un segnale:

$ sudo timeout -s 9 ping 192.168.18.213

Invio di segnali di uccisione

IL "-K" l'opzione viene utilizzata per terminare il processo.

Nell'esempio seguente, se la connessione non si stabilisce in 2 minuti, ucciderà il comando timeout dopo 3 secondi:

$ sudo timeout -k 3 2m ping facebook.com

Nel mio caso, il comando timeout verrà eseguito per 2 minuti e non sarà terminato. Pertanto, non ucciderà nemmeno dopo 3 secondi.

Ottenere aiuto

Linux ha un'ottima funzionalità che fornisce aiuto per ogni comando che utilizziamo. Usando "aiuto" Con un nome di comando, ti fornirà le informazioni di aiuto in dettaglio:

$ timeout - -help

Versione controllata

Per controllare la versione del comando timeout, digita:

$ timeout -Version

Conclusione

Nel sistema operativo Linux, il comando "timeout" è un'utilità della linea di comando che viene utilizzata per terminare un processo in esecuzione dopo un periodo impostato. Viene utilizzato per i processi che funzionano continuamente. Inoltre, è possibile accedere allo stato di uscita dei processi in esecuzione utilizzando il comando "timeout". Abbiamo discusso dei comandi di timeout attraverso diversi esempi con diverse opzioni.