目的:linux 作業系統中在特定的時間執行乙個命令,並且一旦超時就自動結束命令。
timeout 命令會有效地限制乙個程序的絕對執行時間。
timeout 命令是 gnu coreutils 包的一部分,因此它預裝在所有 gnu/linux 系統中。
假設你只想執行乙個命令 n 秒鐘,然後殺死它
timeout
例如,以下命令將在 10 秒後終止
timeout 10s tail -f /var/log/pacman.log
也可以不用在秒數後加字尾s
,以下命令與上面的相同
timeout
10tail -f /var/log/pacman.log
可用的字尾有:
如果執行這個tail -f /var/log/pacman.log
命令,它將繼續執行,直到你按 ctrl+c 手動結束它。但是,如果你使用 timeout 命令執行它,它將在給定的時間間隔後自動終止。如果該命令在超時後仍在執行,則可以傳送 kill 訊號,如下所示。
#在這種情況下,如果 tail 命令在 10 秒後仍然執行,timeout 命令將在 20 秒後傳送乙個 kill 訊號並結束。
timeout -k 20
10tail -f /var/log/pacman.log
有關更多詳細資訊,請檢視手冊頁。
man
timeout
有時,某個特定程式可能需要很長時間才能完成並最終凍結你的系統。在這種情況下,你可以使用此技巧在特定時間後自動結束該程序。
timelimit 使用提供的引數執行給定的命令,並在給定的時間後使用給定的訊號終止程序。首先,它會傳送警告訊號,然後在超時後傳送 kill 訊號。
與 timeout 不同,timelimit 有更多選項。你可以傳遞引數數量,如 killsig、warnsig、killtime、warntime 等。
它存在於基於 debian 的系統的預設倉庫中。所以,你可以使用命令來安裝它:
sudo
apt-get
install timelimit
對於基於 arch 的系統,它在 aur 中存在。因此,你可以使用任何 aur 助手進行安裝,例如 pacaur 、 packer 、 yay 、 yaourt 等。
timelimit -t10 tail -f /var/log/pacman.log
如果不帶任何引數執行 timelimit,它將使用預設值:warntime=3600 秒、warnsig=15 秒、killtime=120 秒、killsig=9。有關更多詳細資訊,請參閱本指南最後給出的手冊頁和專案**。
man timelimit
CF Skills 如何在預定的時間執行你的程式
如何在預定的時間執行應用程式呢?就比如乙個自定義的鬧鐘程式。如何在.net compact framework中實現這樣乙個功能,好的,先來看看從msdn上可以查到的這樣乙個函式 bool tchar systemtime lptime 值得注意的是第二個引數是systemtime的結構。這在.ne...
crontab固定時間執行用法
cron是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。1 直接用crontab命令編輯 cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些引數與說明 crontab u 設定某個使用者的cron服務,一般root使用者在執行這個命令的時候需要此引數 ...
linux命令 在某指定時間執行命令 at
at 在某指定時間執行命令。at options time adte increment atqatrmjob list batch options time at 和 batch 都是在某指定時間執行命令。它們都接受標準輸入和檔案輸入。atq 顯示at佇列中的作業列表。atrm 將取消掛起 at ...