

如何在 Linux 中的特定时间运行命令 | Linux 中国
source link: http://www.10tiao.com/html/325/201807/2664611528/3.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

https://www.ostechnix.com/run-command-specific-time-linux/
作者 | Sk
译者 | geekpi ? ? 共计翻译:747 篇 贡献时间:1708 天
有一天,我使用 rsync
将大文件传输到局域网上的另一个系统。由于它是非常大的文件,大约需要 20 分钟才能完成。我不想再等了,我也不想按 CTRL+C
来终止这个过程。我只是想知道在类 Unix 操作系统中是否有简单的方法可以在特定的时间运行一个命令,并且一旦超时就自动杀死它 —— 因此有了这篇文章。请继续阅读。
在 Linux 中在特定时间运行命令
我们可以用两种方法做到这一点。
方法 1 - 使用 timeout 命令
最常用的方法是使用 timeout
命令。对于那些不知道的人来说,timeout
命令会有效地限制一个进程的绝对执行时间。timeout
命令是 GNU coreutils 包的一部分,因此它预装在所有 GNU/Linux 系统中。
假设你只想运行一个命令 5 秒钟,然后杀死它。为此,我们使用:
$ timeout<time-limit-interval><command>
例如,以下命令将在 10 秒后终止。
$ timeout10stail-f /var/log/pacman.log
你也可以不用在秒数后加后缀 s
。以下命令与上面的相同。
$ timeout10tail-f /var/log/pacman.log
其他可用的后缀有:
◈m
代表分钟。
◈
h
代表小时。
◈
d
代表天。
如果你运行这个 tail -f /var/log/pacman.log
命令,它将继续运行,直到你按 CTRL+C
手动结束它。但是,如果你使用 timeout
命令运行它,它将在给定的时间间隔后自动终止。如果该命令在超时后仍在运行,则可以发送 kill
信号,如下所示。
$ timeout-k 2010tail-f /var/log/pacman.log
在这种情况下,如果 tail
命令在 10 秒后仍然运行,timeout
命令将在 20 秒后发送一个 kill 信号并结束。
有关更多详细信息,请查看手册页。
$ mantimeout
有时,某个特定程序可能需要很长时间才能完成并最终冻结你的系统。在这种情况下,你可以使用此技巧在特定时间后自动结束该进程。
另外,可以考虑使用 cpulimit
,一个简单的限制进程的 CPU 使用率的程序。有关更多详细信息,请查看下面的链接。
方法 2 - 使用 timelimit 程序
timelimit
使用提供的参数执行给定的命令,并在给定的时间后使用给定的信号终止进程。首先,它会发送警告信号,然后在超时后发送 kill 信号。
与 timeout
不同,timelimit
有更多选项。你可以传递参数数量,如 killsig
、warnsig
、killtime
、warntime
等。它存在于基于 Debian 的系统的默认仓库中。所以,你可以使用命令来安装它:
$ sudoapt-get install timelimit
对于基于 Arch 的系统,它在 AUR 中存在。因此,你可以使用任何 AUR 助手进行安装,例如 Pacaur[2]、Packer[3]、Yay[4]、Yaourt[5] 等。
对于其他发行版,请在这里[6]下载源码并手动安装。安装 timelimit
后,运行下面的命令执行一段特定的时间,例如 10 秒钟:
$ timelimit -t10 tail-f /var/log/pacman.log
如果不带任何参数运行 timelimit
,它将使用默认值:warntime=3600
秒、warnsig=15
秒、killtime=120
秒、killsig=9
。有关更多详细信息,请参阅本指南最后给出的手册页和项目网站。
$ man timelimit
今天就是这些。我希望对你有用。还有更好的东西。敬请关注!
干杯!
资源
◈ timelimit 网站 [7]via: https://www.ostechnix.com/run-command-specific-time-linux/
作者:SK[9] 译者:geekpi 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
Recommend
-
59
-
79
定时传信 - 写下心愿、秘密或情话,我们帮你在未来指定时间寄给 ta,也可以写给未来的自己 - NEXT
-
34
有时候,我们在使用 Linux 系统时,会出现下面这样的情景: 一个命令或程序需要很长时间才能运行完毕,在这过程中,系统可能会假死,我们做任何操作都没用,只好重启系统; 我们仅仅想让命令或程序运行指定的时...
-
27
问与答 - @dioxide - 经手的 6~7 个鼠标,不管是大牌、杂牌的,无一例外的都出现了此问题. 话说, 好多年了, 一样的问题, 这是什么机械设计、制造精度或者其他什么的技术制约么? 很难解决么?键盘(不论是机械还
-
30
因为要写周工作报告, 自己希望将本周的工作量化出来. 所以想到: “能不能统计一下本周我的代码总行数呢?”. 本篇文章就来记录下Git统计代码量、代码行数. 应用场景 量化工作报告(就像阿航的需求) 项...
-
8
基础:如何在 Linux 中运行一个 Shell 脚本 | Linux 中国在 Linux 中有两种运行 shell 脚本的方法。来源:https://linux.cn...
-
8
Linux删除指定时间之前的文件 作者: xusx 分类: Linux 发布时间: 2019-08-27 11:18...
-
9
Emacs中如何在指定目录下运行shell命令 shell-command 与 shell-comand-to-string 可以用来在Emacs中运行shell命令,这两个函数都会自动根据shell命令是否以 & 结尾来自动同步/异步调度shell命令。 ...
-
4
【RunAsDate_v1.40】以指定时间运行程序,延长软件试用期 - 『精品软件区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn 查看: 1110|回复: 32
-
9
nohup 如何在后台运行Linux命令 通常当您在终端中运行命令时,必须等到命令完成后才能运行另一个命令 ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK