自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在Linux中的特定時(shí)間運(yùn)行命令

系統(tǒng) Linux
有一天,我使用 rsync 將大文件傳輸?shù)骄钟蚓W(wǎng)上的另一個(gè)系統(tǒng)。由于它是非常大的文件,大約需要 20 分鐘才能完成。我不想再等了,我也不想按 CTRL+C 來終止這個(gè)過程。我只是想知道在類 Unix 操作系統(tǒng)中是否有簡單的方法可以在特定的時(shí)間運(yùn)行一個(gè)命令,并且一旦超時(shí)就自動殺死它 —— 因此有了這篇文章。請繼續(xù)閱讀。

https://s4.51cto.com/oss/201807/02/3f0132d623ecd18f97f78a0b09a9cf19.png

有一天,我使用 rsync 將大文件傳輸?shù)骄钟蚓W(wǎng)上的另一個(gè)系統(tǒng)。由于它是非常大的文件,大約需要 20 分鐘才能完成。我不想再等了,我也不想按 CTRL+C 來終止這個(gè)過程。我只是想知道在類 Unix 操作系統(tǒng)中是否有簡單的方法可以在特定的時(shí)間運(yùn)行一個(gè)命令,并且一旦超時(shí)就自動殺死它 —— 因此有了這篇文章。請繼續(xù)閱讀。

 

在 Linux 中在特定時(shí)間運(yùn)行命令

我們可以用兩種方法做到這一點(diǎn)。

 

方法 1 - 使用 timeout 命令

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

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

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

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

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

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

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

其他可用的后綴有:

  • m 代表分鐘。
  • h 代表小時(shí)。
  • d 代表天。

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

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

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

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

  1. $ man timeout

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

另外,可以考慮使用 cpulimit,一個(gè)簡單的限制進(jìn)程的 CPU 使用率的程序。有關(guān)更多詳細(xì)信息,請查看下面的鏈接。

 

方法 2 - 使用 timelimit 程序

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

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

  1. $ sudo apt-get install timelimit

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

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

  1. $ 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)站。

  1. $ man timelimit

今天就是這些。我希望對你有用。還有更好的東西。敬請關(guān)注! 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2021-06-10 09:56:09

Linux命令shell

2017-02-06 18:00:26

Linuxsudo命令

2020-06-22 07:58:02

Linux命令時(shí)間限制

2019-03-22 09:20:45

Linux命令sudo

2023-03-07 10:50:42

Linux命令系統(tǒng)

2022-10-08 08:31:09

Linuxsudo

2020-04-06 11:47:44

Linux命令腳本

2024-05-31 12:54:37

.NET CoreLinux語言

2023-02-07 09:49:26

Linux命令行合并文件

2020-04-17 08:00:22

Docker命令普通用戶

2022-12-26 17:23:06

Linuxhistory命令

2022-01-21 10:58:39

JavaScriptGolangPython

2009-08-06 20:14:16

linux命令行模式linux命令行修改系統(tǒng)時(shí)間

2011-01-26 13:26:32

Linux進(jìn)程

2017-09-18 10:05:15

WindowsLinux容器

2016-12-01 15:43:41

Linuxls命令

2018-02-23 09:32:13

LinuxUnixntpd

2021-09-03 09:06:42

代碼時(shí)間開發(fā)

2020-08-28 07:00:00

WSLLinuxWindows 10

2021-08-03 14:33:53

cron定時(shí)器Linux命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號