Per gli amministratori di sistema responsabili del controllo dei server Linux, la gestione delle risorse è un'attività importante di cui occuparsi. A volte, i comandi Linux occupano una grossa fetta di risorse di sistema e devono essere interrotti.
Fortunatamente, puoi limitare il runtime dei tuoi comandi usando utilità come limite di tempo. In questo articolo, discuteremo perché dovresti aggiungere limiti di tempo ai tuoi comandi e come aggiungere una restrizione di tempo usando comandi come timelimit e timeout.
Perché limitare il tempo di esecuzione di un comando?
Ci sono diversi motivi per cui potresti dover eseguire i tuoi comandi con un limite di tempo. Innanzitutto, potresti eseguire un computer o un server meno recente e non vuoi che il tuo sistema sprechi le sue risorse in elaborazioni indesiderate.
In secondo luogo, le attività a tempo determinato come i trasferimenti di file terminano dopo un certo periodo, ma i loro processi non si interrompono immediatamente. Per impedire al programma di impiegare più tempo della CPU e memoria, è possibile aggiungere un limite che interromperà il processo una volta completato il trasferimento.
Aggiungi limite utilizzando il comando timeout
Il comando timeout è la prima scelta di molti utenti Linux per aggiungere una restrizione temporale ai propri comandi. Poiché questo strumento fa parte di GNU Core Utilities pacchetto, viene preinstallato su quasi tutte le distribuzioni Linux.
La sintassi di base del comando timeout è:
comando limite di timeout
...dove limite è la quantità di tempo per cui il comando deve essere eseguito e comando è il comando Linux che vuoi eseguire con un limite di tempo.
Ad esempio, se desideri ottenere i dettagli del processo utilizzando il file superiore comando per 10 secondi:
timeout 10s in alto
Il comando in alto non finisce mai e devi chiuderlo manualmente usando Ctrl + C. Il suddetto comando verrà eseguito in alto per 10 secondi e una volta che il timer è scaduto, il timeout interromperà la sua esecuzione. Nota che il timeout richiede secondi come unità di tempo predefinita, il che significa 10 e 10s sono gli stessi.
Puoi anche usare m, h, e d per minuti, ore, e giorni rispettivamente.
Invia manualmente segnali di uccisione con timeout
Per impostazione predefinita, il comando timeout invia SIGTERM come segnale kill. SIGTERM sta per Segnale terminato, che termina immediatamente il processo.
Puoi inviare anche altri segnali usando il -S bandiera. Ad esempio, per inviare il segnale SIGKILL:
timeout -s SIGKILL 10 superiore
È anche possibile specificare il segnale con il suo numero di segnale. Il comando seguente invia anche il segnale SIGKILL al comando superiore.
timeout -s 9 10 superiore
...dove 9 è il numero del segnale per SIGKILL.
Per ottenere un elenco di tutti i segnali disponibili:
kill -l
Alcuni comandi non si interrompono completamente anche dopo aver aggiunto un limite di tempo. In tali situazioni, l'aggiunta di un segnale kill con il comando timeout predefinito risolve il problema.
timeout -k 15 10 superiore
Il comando di cui sopra eseguirà prima il comando superiore per 10 secondi e, se il comando non si interrompe, invierà un segnale di interruzione al processo dopo 15 secondi.
Per saperne di più: Come eliminare i programmi che non rispondono in Linux
Limitazione del runtime del comando con il limite di tempo
A differenza del comando timeout, timelimit non è uno dei pacchetti standard preinstallati nelle distribuzioni Linux. Pertanto, dovrai installare manualmente il limite di tempo sul tuo sistema.
Per installare su distribuzioni basate su Debian:
sudo apt install timelimit
Timelimit non è disponibile nei repository ufficiali di Arch. Ma puoi installarlo usando un gestore di pacchetti AUR come Sìì.
sudo yay -S timelimit
Relazionato: Come installare i pacchetti su Arch Linux
Per installare su Fedora:
sudo dnf install timelimit
Su RHEL e CentOS:
sudo yum install timelimit
In alternativa, se non riesci ancora a installare il pacchetto sul tuo sistema, scarica il codice sorgente dal sito ufficiale e installalo manualmente.
Scarica: limite di tempo
Per eseguire il comando top per 10 secondi utilizzando timelimit:
timelimit -t10 top
Timelimit accetta più argomenti come warntime, warnsig, ammazzare il tempo, e killsig. Se l'utente non fornisce questi argomenti, vengono presi i loro valori predefiniti, che sono warntime = 3600 secondi, warnsig = 15, killtime = 120, e killsig = 9.
Gestire la vita di un comando in Linux
Monitorare i comandi e assumere il controllo dei processi diventa importante se la tua macchina Linux ha risorse limitate. Utilità come il timeout e il limite di tempo sono un vero toccasana in quanto ti consentono di aggiungere limitazioni di tempo ai tuoi comandi.
Come il runtime dei comandi, puoi anche limitare il tempo di visualizzazione del tuo sistema. Se sei un genitore che non vuole che tuo figlio perda tempo inutile davanti a un computer, limitare il tempo dello schermo è la scelta più appropriata.
Il software di controllo parentale è praticamente inaudito su Linux. Qui ci sono diversi modi per bloccare i siti e gestire i contenuti su Linux.
Leggi Avanti
- Linux
- Linux
Deepesh è il Junior Editor per Linux presso MUO. Scrive contenuti informativi su Internet da oltre 3 anni. Nel tempo libero ama scrivere, ascoltare musica e suonare la chitarra.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Ancora un passo…!
Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.