Com executar una ordre amb límit de temps (temps d'espera) a Linux


Linux ve amb una gran quantitat d'ordres, cada comanda única i utilitzada en casos específics. L'objectiu de Linux és ajudar-vos a ser el més ràpid i eficient possible. Una propietat d'una ordre Linux és el límit de temps. Podeu establir un límit de temps per a qualsevol comanda que vulgueu. Si el temps expira, l'ordre deixa d'executar-se.

En aquest breu tutorial, aprendreu dos mètodes sobre com podeu utilitzar un límit de temps a les vostres ordres.

  1. Executeu ordres de Linux amb l'eina de temps d'espera
  2. Executeu ordres de Linux mitjançant el programa de límit de temps

Linux té una utilitat de línia d'ordres anomenada temps d'espera, que us permet executar una ordre amb un límit de temps.

La seva sintaxi és la següent.

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

Per utilitzar l'ordre, especifiqueu un valor de temps d'espera (en segons) amb l'ordre que voleu executar. Per exemple, per esgotar el temps d'una ordre ping després de 5 segons, podeu executar l'ordre següent.

# timeout 5s ping google.com

No cal que especifiqueu el(s) després del número 5. La comanda següent és la mateixa i seguirà funcionant.

# timeout 5 ping google.com

Altres sufixos inclouen:

  • m que representa els minuts
  • h que representa les hores
  • d que representa els dies

De vegades, les ordres poden continuar executant-se fins i tot després que el temps d'espera enviï el senyal inicial. En aquests casos, podeu utilitzar l'opció --kill-after.

Aquí teniu la sintaxi.

-k, --kill-after=DURATION

Heu d'especificar una durada per fer saber el temps d'espera després de quant de temps s'ha d'enviar el senyal de matança.

Per exemple, l'ordre que es mostra s'acabarà al cap de 8 segons.

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

El programa Límit de temps executa una ordre determinada i després finalitza el procés després d'un temps especificat utilitzant un senyal donat. Inicialment passa un senyal d'advertència i, després d'un temps d'espera, envia el senyal de mort.

A diferència de l'opció de temps d'espera, el límit de temps té més opcions com ara killsig, warnsig, killtime i warntime.

El límit de temps es pot trobar als repositoris dels sistemes basats en Debian i per instal·lar-lo, utilitzeu l'ordre següent.

$ sudo apt install timelimit

Per als sistemes basats en Arch, podeu instal·lar-lo mitjançant programes d'ajuda AUR, per exemple, Pacaur Pacman i Packer.

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

Altres distribucions de Linux, podeu descarregar la font de límit de temps i instal·lar-la manualment.

Després de la instal·lació, executeu l'ordre següent i especifiqueu l'hora. En aquest exemple, podeu utilitzar 10 segons.

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

Tingueu en compte que si no especifiqueu arguments, Timelimit utilitza els valors predeterminats: warntime=3600 segons, warnsig=15, killtime=120 i killsig=9.

En aquesta guia, heu après com executar ordres amb un límit de temps a Linux. En revisió, podeu utilitzar l'ordre Timeout o la utilitat Timelimit.

L'ordre Timeout és fàcil d'utilitzar, però la utilitat Timelimit és una mica complicada però té més opcions. Pots triar l'opció més adequada segons les teves necessitats.