Con il comando timeout puoi impostare un limite di tempo per l'esecuzione di altri comandi e programmi. Se il programma viene eseguito più a lungo del limite impostato, il timeout lo interrompe.
Suona bene, vero? Vediamo come utilizzare questo comando.
Utilizzo del comando timeout in Linux

Ecco la sintassi per il comando di timeout:
timeout [options] seconds command
Come puoi vedere, qui l'ora è sempre impostata in secondi.
Facciamo un esempio con il comando sleep. Il comando sleep fondamentalmente "dorme" fino al tempo assegnato. Il che significa che aspetta solo così tanti secondi.
timeout 4 sleep 10
Quindi, se uso la sospensione 10, la shell attende 10 secondi. Ma se metto un timeout di 4 secondi, il comando di sospensione che doveva essere eseguito per 10 secondi termina in soli 4 secondi.
Per impostazione predefinita, il comando timeout invia SIGTERM per terminare educatamente il programma in esecuzione. Puoi inviare qualche altro segnale usando l'opzione -s.
Puoi vedere tutti i segnali di kill in Linux con il comando kill -l. Diciamo che vuoi inviare il segnale SIGKILL (kill -9) invece del SIGTERM predefinito. Puoi usare qualcosa del genere:
timeout -s SIGKILL 3 sleep 30
Potresti anche usare KILL o 9 (il numero di SIGKILL come elencato in kill -l) invece di SIGKILL.
Difficile uccidere un programma non è una cosa carina da fare. Ma un programma può ignorare il SIGTERM.
Un modo migliore per gestire è inviare il segnale di kill solo quando la tua richiesta di terminazione iniziale viene ignorata dal programma in esecuzione.
Quindi, supponiamo che tu voglia eseguire un programma non più di 5 secondi. Ma se il programma in esecuzione si rifiuta di fermarsi, invii il segnale di kill 3 secondi dopo l'invio del SIGTERM predefinito. Ecco cosa puoi usare:
timeout -k 3 5 program
Ciò significa che il tuo programma non verrà eseguito per più di 8 secondi. Puoi usare il comando time per controllare per quanto tempo è stato effettivamente eseguito il programma.
C'è un uso pratico del comando di timeout?
Sembra uno di quegli oscuri comandi Linux che potresti non usare tutti i giorni. Potrebbe, tuttavia, essere utile in alcune situazioni speciali.
Ad esempio, se hai iniziato a giocare a un gioco da terminale per rinfrescare un po' il tuo umore ma hai perso la cognizione del tempo e hai continuato a giocare molto più del tempo desiderato.
Il comando di timeout è utile in questi casi.
Resta sintonizzato per saperne di più sui comandi Linux. Iscriviti alla newsletter per ricevere regolarmente suggerimenti e trucchi.