溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Linux中定時運(yùn)行命令

發(fā)布時間:2021-01-11 16:22:57 來源:億速云 閱讀:405 作者:Leah 欄目:服務(wù)器

怎么在Linux中定時運(yùn)行命令?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

方法 1 - 使用 timeout 命令

最常用的方法是使用 timeout 命令。對于那些不知道的人來說,timeout 命令會有效地限制一個進(jìn)程的絕對執(zhí)行時間。timeout 命令是 GNU coreutils 包的一部分,因此它預(yù)裝在所有 GNU/Linux 系統(tǒng)中。

假設(shè)你只想運(yùn)行一個命令 5 秒鐘,然后殺死它。為此,我們使用:

$ timeout <time-limit-interval> <command>

例如,以下命令將在 10 秒后終止。

$ timeout 10s tail -f /var/log/pacman.log

怎么在Linux中定時運(yùn)行命令

你也可以不用在秒數(shù)后加后綴 s。以下命令與上面的相同。

$ timeout 10 tail -f /var/log/pacman.log

其他可用的后綴有:

  • m 代表分鐘。

  • h 代表小時。

  • d 代表天。

如果你運(yùn)行這個 tail -f /var/log/pacman.log 命令,它將繼續(xù)運(yùn)行,直到你按 CTRL+C 手動結(jié)束它。但是,如果你使用 timeout 命令運(yùn)行它,它將在給定的時間間隔后自動終止。如果該命令在超時后仍在運(yùn)行,則可以發(fā)送 kill 信號,如下所示。

$ timeout -k 20 10 tail -f /var/log/pacman.log

在這種情況下,如果 tail 命令在 10 秒后仍然運(yùn)行,timeout 命令將在 20 秒后發(fā)送一個 kill 信號并結(jié)束。

有關(guān)更多詳細(xì)信息,請查看手冊頁。

$ man timeout

有時,某個特定程序可能需要很長時間才能完成并最終凍結(jié)你的系統(tǒng)。在這種情況下,你可以使用此技巧在特定時間后自動結(jié)束該進(jìn)程。

方法 2 - 使用 timelimit 程序

timelimit 使用提供的參數(shù)執(zhí)行給定的命令,并在給定的時間后使用給定的信號終止進(jìn)程。首先,它會發(fā)送警告信號,然后在超時后發(fā)送 kill 信號。

與 timeout 不同,timelimit 有更多選項(xiàng)。你可以傳遞參數(shù)數(shù)量,如 killsig、warnsig、killtime、warntime 等。它存在于基于 Debian 的系統(tǒng)的默認(rèn)倉庫中。所以,你可以使用命令來安裝它:

$ sudo apt-get install timelimit

對于基于 Arch 的系統(tǒng),它在 AUR 中存在。因此,你可以使用任何 AUR 助手進(jìn)行安裝,例如 Pacaur 、 Packer 、 Yay 、 Yaourt 等。

對于其他發(fā)行版,請 在這里 下載源碼并手動安裝。安裝 timelimit 后,運(yùn)行下面的命令執(zhí)行一段特定的時間,例如 10 秒鐘:

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

如果不帶任何參數(shù)運(yùn)行 timelimit,它將使用默認(rèn)值:warntime=3600 秒、warnsig=15 秒、killtime=120 秒、killsig=9。有關(guān)更多詳細(xì)信息,請參閱本指南最后給出的手冊頁和項(xiàng)目網(wǎng)站。

$ man timelimit

看完上述內(nèi)容,你們掌握怎么在Linux中定時運(yùn)行命令的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI