Ricerca nel sito web

Come eseguire un comando con limite di tempo (Timeout) in Linux


Linux viene fornito con un'abbondanza di comandi, ogni comando unico e utilizzato in casi specifici. L'obiettivo di Linux è aiutarti a essere il più veloce ed efficiente possibile. Una proprietà di un comando Linux è il limite di tempo. Puoi impostare un limite di tempo per qualsiasi comando tu voglia. Se il tempo scade, l'esecuzione del comando interrompe.

In questo breve tutorial imparerai due metodi su come utilizzare un limite di tempo nei tuoi comandi.

Su questa pagina:
  1. Esegui i comandi Linux utilizzando lo strumento timeout
  2. Esegui i comandi Linux utilizzando il programma Timelimit

Esegui i comandi Linux utilizzando lo strumento timeout

Linux ha un'utilità della riga di comando chiamata timeout, che ti consente di eseguire un comando con un limite di tempo.

La sua sintassi è la seguente.

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

Per utilizzare il comando, specifica un valore di timeout (in secondi) con il comando che desideri eseguire. Ad esempio, per far scadere un comando ping dopo 5 secondi, puoi eseguire il seguente comando.

timeout 5s ping google.com

Non è necessario specificare le (i) dopo il numero 5. Il comando seguente è lo stesso e funzionerà comunque.

timeout 5 ping google.com

Altri suffissi includono:

  • m rappresenta i minuti
  • h rappresenta le ore
  • d che rappresenta i giorni

A volte i comandi possono continuare a essere eseguiti anche dopo che il timeout ha inviato il segnale iniziale. In questi casi, puoi utilizzare l'opzione --kill-after.

Ecco la sintassi.

-k, --kill-after=DURATION

È necessario specificare una durata per far sapere al timeout dopo quanto tempo deve essere inviato il segnale di kill.

Ad esempio, il comando mostrato verrà terminato dopo 8 secondi.

timeout 8s tail -f /var/log/syslog

Esegui i comandi Linux utilizzando il programma Timelimit

Il programma Timelimit esegue un dato comando e poi termina il processo dopo un tempo specificato utilizzando un dato segnale. Inizialmente trasmette un segnale di avviso e quindi, dopo un timeout, invia il segnale di uccisione.

A differenza dell'opzione timeout, Timelimit ha più opzioni come killsig, warnsig, killtime e orario di avviso.

Timelimit può essere trovato nei repository dei sistemi basati su Debian e per installarlo, utilizzare il seguente comando.

sudo apt install timelimit

Per i sistemi basati su Arch, è possibile installarlo utilizzando i programmi di supporto AUR, ad esempio Pacaur Pacman e Imballatore.

Pacman -S timelimit
pacaur -S timelimit
packer -S timelimit

Altre distribuzioni Linux, puoi scaricare il sorgente timelimit e installarlo manualmente.

Dopo l'installazione, eseguire il comando seguente e specificare l'ora. In questo esempio puoi utilizzare 10 secondi.

timelimit -t10 tail -f /var/log/pacman.log

Tieni presente che se non specifichi argomenti, Timelimit utilizza i valori predefiniti: warntime=3600 secondi, warnsig=15, killtime =120 e killsig=9.

Conclusione

In questa guida hai imparato come eseguire comandi con un limite di tempo in Linux. In revisione, puoi utilizzare il comando Timeout o l'utilità Timelimit.

Il comando Timeout è facile da usare, ma l'utilità Timelimit è un po' complicata ma ha più opzioni. Puoi scegliere l'opzione più adatta a seconda delle tue esigenze.