5小时后杀死进程的cron作业

mk_*_*_89 5 php cron crontab

我基本上有一个cron作业,每天晚上运行,更新数据库中的数千个产品.

我在晚上运行cron作业的原因是因为服务器上的延迟会减少,因为在此期间没有多少人访问该站点,cron作业可以持续数天而不受任何干扰.

这是cron job命令的样子

30 23 * * *     /usr/bin/php /var/www/ul/prices_all.php >> /var/www/ul/log/prices_all.txt
Run Code Online (Sandbox Code Playgroud)

我想知道的是,是否有可能创建一个cron作业,在5小时后杀死这个过程,例如

30 05 * * *     kill /var/www/ul/prices_all.php[process]
Run Code Online (Sandbox Code Playgroud)

Gre*_*ack 16

您可以使用timeout(coreutils)执行此操作:

30 23 * * *   timeout 18000  /usr/bin/php /var/www/ul/prices_all.php >> /var/www/ul/log/prices_all.txt
Run Code Online (Sandbox Code Playgroud)

它只是设置一个超时(18000secs = 5小时)并在该时间之后仍在运行时终止进程.

或者您可以在php文件中设置超时:

<?php set_time_limit(18000);
Run Code Online (Sandbox Code Playgroud)