GNU/Linux >> Linux Esercitazione >  >> Linux

Metti un timer sui tuoi comandi in esecuzione con il comando di timeout in Linux

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.


Linux
  1. Controlla i comandi e le attività con il comando watch di Linux

  2. Comando JQ in Linux con esempi

  3. Esecuzione di comandi Linux in background e in primo piano

  4. Comandi Linux dalla A alla Z

  5. Come mandare in crash il tuo sistema:pericolosi comandi Linux

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

Comando IP Linux con esempi

Comando di timeout in Linux

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

15 Comando Linux ps con esempi

Il comando timer in Linux