如何限制Linux命令程序運行的時間
Linux提供了大量的命令,每個命令都是唯一的,并且在特定的情
況下使用。Linux的目標是幫助您盡可能地高效工作。Linux命令的一個屬性是時間限制。您可以為任何您想要的命令設(shè)置時間限制。如果時間過期,命令停止執(zhí)行。
在本教程中,您將學(xué)習(xí)如何在命令中使用時間限制的兩種方法。
使用`timeout`命令運行Linux命令
Linux有一個名為timeout的命令行實用程序,它允許您在有時間限制的情況下執(zhí)行命令。
它的語法如下:
- timeout [OPTION] DURATION COMMAND [ARG]...
要使用該命令,需要為要運行的命令指定超時值(以秒為單位)。例如,要讓ping命令設(shè)置超時時間為5秒,可以運行以下命令。
- timeout 5s ping baidu.com
你不需要為時間數(shù)值指定s,下面的命令是相同的,仍然可以工作。
- timeout 5 ping baidu.com
其他后綴包括:
- m代表分鐘
- h代表時間
- d代表天
有時,即使在timeout發(fā)送初始信號后,命令仍可能繼續(xù)運行。在這種情況下,可以使用-- kill-after選項。
以下是語法:
- -k, --kill-after=DURATION
您需要指定一個持續(xù)時間,讓timeout知道殺死信號要發(fā)送多少時間之后。例如,指定命令將在8秒后終止。
- timeout 8s tail -f /var/log/syslog
使用`timelimit`程序運行Linux命令
timelimit程序運行一個給定的命令,然后在指定的時間后使用一個給定的信號終止進程。它首先傳遞一個警告信號,然后在超時后發(fā)送殺死信號。
與timeout選項不同,timelimit有更多的選項,如killsig、warnsig、killtime和warntime。
可以在基于debian的系統(tǒng)的存儲庫中找到timelimit,要安裝它,使用以下命令。
- sudo apt install timelimit
對于基于arch的系統(tǒng),您可以使用aur輔助程序來安裝它,例如Pacaur Pacman和Packer。
- Pacman -S timelimit
- pacaur -S timelimit
- packer -S timelimit
在其他Linux發(fā)行版中,您可以下載timelimit源代碼并手動安裝它。
安裝后,運行以下命令并指定時間。在本例中,可以使用10秒。
- timelimit -t10 tail -f /var/log/pacman.log
注意,如果不指定參數(shù),timelimit使用默認值:warntime=3600秒,warnsig=15, killtime=120,和killsig=9。
總結(jié)
在本指南中,您學(xué)習(xí)了如何在Linux中對運行命令設(shè)置時間限制。本文介紹了2個工具,timeout命令或timelimit實用程序。
timeout命令很容易使用,但是timelimit命令有點復(fù)雜,但是有更多的選項。您可以根據(jù)需要選擇最合適的選項。
本文轉(zhuǎn)載自:https://www.linuxrumen.com/cyml/1776.html