Sådan køres en kommando med tidsgrænse (timeout) i Linux
Linux leveres med et væld af kommandoer, hver kommando er unik og bruges i specifikke tilfælde. Målet med Linux er at hjælpe dig med at være så hurtig og effektiv som muligt. En egenskab ved en Linux-kommando er tidsbegrænsningen. Du kan indstille en tidsbegrænsning for enhver kommando, du ønsker. Hvis tiden udløber, stopper kommandoen udførelsen.
I denne korte vejledning skal du lære to metoder til, hvordan du kan bruge en tidsbegrænsning i dine kommandoer.
- Kør Linux-kommandoer ved hjælp af timeoutværktøjet
- Kør Linux-kommandoer ved hjælp af Timelimit-programmet
Linux har et kommandolinjeprogram kaldet en timeout, som giver dig mulighed for at udføre en kommando med en tidsbegrænsning.
Dens syntaks er som følger.
timeout [OPTION] DURATION COMMAND [ARG]...
For at bruge kommandoen skal du angive en timeoutværdi (i sekunder) med den kommando, du vil køre. For eksempel, for at timeout en ping-kommando efter 5 sekunder, kan du køre følgende kommando.
# timeout 5s ping google.com
Du behøver ikke at specificere (s) efter nummer 5. Kommandoen nedenfor er den samme og fungerer stadig.
# timeout 5 ping google.com
Andre suffikser inkluderer:
-
m
repræsenterer minutter -
h
, der repræsenterer timer -
d
, der repræsenterer dage
Nogle gange kan kommandoer fortsætte med at køre, selv efter timeout sender det indledende signal. I sådanne tilfælde kan du bruge indstillingen --kill-after
.
Her er syntaksen.
-k, --kill-after=DURATION
Du skal angive en varighed for at give timeout besked, efter hvor lang tid dræbningssignalet skal sendes.
For eksempel afsluttes den viste kommando efter 8 sekunder.
# timeout 8s tail -f /var/log/syslog
Timelimit-programmet kører en given kommando og afslutter derefter processen efter et bestemt tidspunkt ved hjælp af et givet signal. Det sender oprindeligt et advarselssignal, og derefter sender det et kill-signal efter en timeout.
I modsætning til timeout-indstillingen har Timelimit flere muligheder såsom killsig, warnsig, killtime og warntime.
Timelimit kan findes i arkiverne på Debian-baserede systemer, og brug følgende kommando for at installere den.
$ sudo apt install timelimit
For Arch-baserede systemer kan du installere det ved hjælp af AUR-hjælpeprogrammer, fx Pacaur Pacman og Packer.
# Pacman -S timelimit # pacaur -S timelimit # packer -S timelimit
Andre Linux-distributioner, du kan downloade timelimit-kilde og installere den manuelt.
Efter installation skal du køre følgende kommando og angive klokkeslættet. I dette eksempel kan du bruge 10 sekunder.
$ timelimit -t10 tail -f /var/log/pacman.log
Bemærk, at hvis du ikke angiver argumenter, bruger Timelimit standardværdierne: warntime = 3600 sekunder, warnsig = 15, killtime = 120 og killsig = 9.
I denne vejledning har du lært, hvordan du kører kommandoer med en tidsbegrænsning i Linux. I gennemgang kan du bruge kommandoen Timeout eller hjælpeprogrammet Timelimit.
Timeout-kommandoen er nem at bruge, men Timelimit-værktøjet er lidt kompliceret, men har flere muligheder. Du kan vælge den mest passende mulighed afhængigt af dine behov.