GNU/Linux >> Znalost Linux >  >> Linux

Příkaz časového limitu Linuxu vysvětlen pro začátečníky (s příklady)

Někdy, když spustíte příkaz v Linuxu, možná jej budete chtít spustit po nastavenou dobu. Existuje nástroj příkazového řádku - timeout - který je speciálně vyvinut pro tento účel. V tomto článku probereme základy tohoto příkazu pomocí několika snadno pochopitelných příkladů.

Ale než to uděláme, stojí za zmínku, že všechny příklady v tomto tutoriálu byly testovány na počítači Ubuntu 18.04 LTS.

Příkaz časového limitu Linuxu

Jak název napovídá, příkaz timeout v Linuxu umožňuje provést příkaz s časovým limitem. Následuje jeho syntaxe:

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

A zde je návod, jak to vysvětluje manuálová stránka nástroje:

timeout - run a command with a time limit
Start COMMAND, and kill it if still running after DURATION

Následuje několik příkladů ve stylu otázek a odpovědí, které by vám měly poskytnout lepší představu o tom, jak tento nástroj funguje.

Q1. Jak používat příkaz timeout?

Základní použití je docela snadné – stačí provést „timeout“ zadáním hodnoty časového limitu (uvažovaného v sekundách) a příkazu, který chcete spustit.

Chcete-li například vypršet časový limit příkazu ping po 5 sekundách, zde je návod, jak můžete časový limit v tomto případě použít.

timeout 5 ping google.com

Q2. Jak získat výstupní stav příkazu?

Ve výchozím nastavení, pokud je příkaz timeout úspěšný, vrátí 124 jako stav ukončení. Následuje příklad:

V prvním případě jsem nechal příkaz timeout úspěšně proběhnout a jak vidíte, stav ukončení byl 124. Při druhém spuštění jsem však příkaz násilně zabil pomocí Ctrl+C a v takovém případě byl stav ukončení byla 0.

Ale v případě, že chcete, aby timeout vrátil stav vstupního příkazu, i když timeout proběhne úspěšně, budete muset použít volbu --preserve-status příkazového řádku.

Například:

timeout --preserve-status 5 ping google.com

3. čtvrtletí. Jak změnit odeslaný časový limit signálu?

Nemá smysl hádat, že časový limit funguje tak, že se odešle signál do vstupního příkazu, takže ten se zastaví, když se blíží časový limit. Ve výchozím nastavení SIGTERM je používán příkazem.

Pokud však chcete, můžete změnit signál odeslaný po uplynutí časového limitu. K tomu budete muset použít volbu -s příkazového řádku a zadat jako vstup signál, který má časový limit odeslat.

Například:

timeout -s SIGKILL [COMMAND]

Chcete-li načíst seznam dostupných signálů, které můžete odeslat, spusťte následující příkaz:

kill -l

4. Jak zajistit, aby časový limit automaticky odeslal signál KILL?

Někdy se můžete setkat se vstupním příkazem, který pokračuje v běhu, i když časový limit odešle počáteční signál. Pro případy, jako jsou tyto, časový limit nabízí možnost '--kill-after'.

Zde je návod, jak to vysvětluje manuálová stránka:

-k, --kill-after=DURATION

              also send a KILL signal if COMMAND is still running

              this long after the initial signal was sent

Jak tedy vidíte, musíte zadat dobu trvání, aby časový limit věděl, po jaké době má být tento signál odeslán.

Závěr

V závislosti na druhu práce, kterou děláte, se může příkaz timeout ukázat jako docela užitečný nástroj. Zde v tomto tutoriálu jsme probrali většinu možností, které tento nástroj nabízí. Jakmile je dokončíte, můžete se o časovém limitu dozvědět více, když přejdete na jeho manuálovou stránku.


Linux
  1. Příkaz wc pro Linux vysvětlený pro začátečníky (6 příkladů)

  2. Linux unexpand Command Vysvětlený pro začátečníky (s příklady)

  3. Linuxový příkaz objdump vysvětlený pro začátečníky (7 příkladů)

  1. Linuxový příkaz cksum vysvětlený pro začátečníky (s příklady)

  2. Příkaz Linux Csplit vysvětlený pro začátečníky (6 příkladů)

  3. Příkaz ukončení Linuxu vysvětlený pro začátečníky (s příklady)

  1. Linux Free Command vysvětlený pro začátečníky (6 příkladů)

  2. Příkaz Linux Head vysvětlený pro začátečníky (5 příkladů)

  3. Linuxový tee příkaz vysvětlený pro začátečníky (6 příkladů)