Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 是否可以让cron作业仅在特定时间之间运行?_Linux - Fatal编程技术网

Linux 是否可以让cron作业仅在特定时间之间运行?

Linux 是否可以让cron作业仅在特定时间之间运行?,linux,Linux,我正在为一个作业编辑crontab,我想在周五晚上10点到周六晚上10点之间运行,但我不确定这是否可行。 感谢您的帮助。如果理解正确,您希望工作在周六晚上10点后结束 您可以使用timeout命令执行此操作: 例如,如果作业是命令参数,则将其指定为: timeout 86400 command arguments 其中,86400是终止进程之前等待的秒数 在crontable中,这意味着 00 22 * * 5 timeout 86400 command arguments 如果您不想从超时

我正在为一个作业编辑crontab,我想在周五晚上10点到周六晚上10点之间运行,但我不确定这是否可行。
感谢您的帮助。

如果理解正确,您希望工作在周六晚上10点后结束

您可以使用
timeout
命令执行此操作:

例如,如果作业是
命令参数
,则将其指定为:

timeout 86400 command arguments
其中,
86400
是终止进程之前等待的秒数

在crontable中,这意味着

00 22 * * 5 timeout 86400 command arguments

如果您不想从超时开始执行此操作:

通过crontab实现它的最佳方法是

1) 在crontab中输入周五晚上10点的脚本script1 此脚本1运行您的目标程序prog1,并应控制逻辑,如果发现prog1在周六晚上10:01继续运行,该逻辑将终止prog1

2) 在crontab中有一个条目,在周五晚上10点运行prog1,并在周六晚上10:01有另一个脚本script_to_kill,它将检查prog1是否仍在运行,如果是,则kill


杀死一个脚本/程序有它自己的问题

你能更具体一点吗?Cron可以调度一个可执行文件,它通常不限制运行时间。你可以安排在星期五晚上10点,或者通常是一周中的任何一天/你想要的时间。我希望我的工作只在这两个小时之间运行(星期五晚上10点-星期六晚上10点)。这是否回答了你的问题?这是否意味着在星期六晚上10点之后,作业应该被终止?*22**5,6/script/to/execute/是否正确?否
cronjob
仅指定进程何时启动,因此您不应该指定
6
作为dow,而且它应该是
22
(因为那是晚上10点)。最后,您应该在它前面加上timeout。@user3561633那个神奇的数字(
86400
)是
24*60*60
。一分钟有60秒,一小时有60分钟,一天有24小时。因此,这将在24小时后超时(终止)作业。我希望它在星期五和星期六之间运行,而不指定6如何运行?如果我错了,请更正。您将指定5,因为您希望它在星期五开始。如果您添加了6,它将在周六开始(再次)。当然,人们应该希望脚本不会做那么多I/O或修改一些寄存器(或仅在处理开始时)。是的,这也很有用。