Linux中如何定期运行命令?我相信很多没有经验的人对此无能为力。因此,本文总结了问题产生的原因及解决方法。希望你能通过这篇文章解决这个问题。
方法 1 - 使用 timeout 命令
最常见的方法是使用超时命令。对于不知道的人来说,超时命令可以有效地限制一个进程的绝对执行时间。超时命令是GNU coreutils包的一部分,所以在所有GNU/Linux系统中都是预装的。
假设你只想运行一个命令5秒钟,然后杀死它。为此,我们使用:
$ time out-time-limit-interval命令
例如,以下命令将在10秒后终止。
$ time out 10s tail-f/var/log/pacman . log
不用在第二个后面加后缀s。以下命令同上。
$ time out 10 tail-f/var/log/pacman . log
其他可用的后缀有:
m代表分钟。
h代表小时。
d代表天。
如果您运行这个tail -f /var/log/pacman.log命令,它将继续运行,直到您按CTRL C手动结束它。但是,如果您使用超时命令来运行它,它将在给定的时间间隔后自动终止。如果命令在超时后仍在运行,您可以发送如下所示的终止信号。
$ time out-k 20 10 tail-f/var/log/pacman . log
这种情况下,如果10秒后tail命令仍然运行,则超时命令会在20秒后发送kill信号并结束。
有关更多详细信息,请参见手册页。
$ man超时
有时,一个特定的程序可能需要很长时间才能完成,并最终冻结您的系统。在这种情况下,您可以使用这种技术在一定时间后自动结束该过程。
方法 2 - 使用 timelimit 程序
Timelimit使用提供的参数执行给定的命令,并在给定的时间后使用给定的信号终止该过程。首先,它发送一个警告信号,然后在超时后发送一个终止信号。
与超时不同,时限有更多的选项。您可以传递许多参数,如killsig、warnsig、killtime、warntime等。它存在于基于Debian系统的默认仓库中。因此,您可以使用命令来安装它:
$ sudo apt-get安装时间限制
对于基于拱门的系统,它存在于AUR。因此,你可以使用任何AUR助手来安装,如pacoor,Packer,Yay,Yaourt等。
对于其他发行版,请在此下载源代码并手动安装。安装时限后,在特定时间(如10秒)内运行以下命令:
$ time limit-T10 tail-f/var/log/pacman . log
没有任何参数的运行时间限制将使用默认值:warntime=3600秒,warnsig=15秒,killtime=120秒,killsig=9秒。有关更多详细信息,请参考本指南末尾给出的手册页和项目网站。
$人工时间限制
看完以上,你知道在Linux中如何定期运行命令吗?如果你想学习更多的技能或了解更多,请关注桂哥网络。谢谢你的阅读!