我已经看到了一些解决方案,包括手表和简单地在后台运行循环(和睡眠)脚本,但没有一个是理想的。
我有一个需要每隔15秒运行一次的脚本,由于cron不支持秒,所以我只能解决其他问题。
在unix上,每15秒运行一次脚本的最健壮和最有效的方法是什么?该脚本还需要在重新启动后运行。
发布于 2009-06-23 18:28:58
如果您坚持从cron运行脚本:
* * * * * /foo/bar/your_script
* * * * * sleep 15; /foo/bar/your_script
* * * * * sleep 30; /foo/bar/your_script
* * * * * sleep 45; /foo/bar/your_script
并将脚本名称和路径替换为/foo/bar/ your _script
发布于 2013-10-23 22:44:41
以上内容的修改版本:
mkdir /etc/cron.15sec
mkdir /etc/cron.minute
mkdir /etc/cron.5minute
添加到/etc/crontab:
* * * * * root run-parts /etc/cron.15sec > /dev/null 2> /dev/null
* * * * * root sleep 15; run-parts /etc/cron.15sec > /dev/null 2> /dev/null
* * * * * root sleep 30; run-parts /etc/cron.15sec > /dev/null 2> /dev/null
* * * * * root sleep 45; run-parts /etc/cron.15sec > /dev/null 2> /dev/null
* * * * * root run-parts /etc/cron.minute > /dev/null 2> /dev/null
*/5 * * * * root run-parts /etc/cron.5minute > /dev/null 2> /dev/null
发布于 2009-06-23 18:28:41
不会在后台运行它吧?
#!/bin/sh
while [ 1 ]; do
echo "Hell yeah!" &
sleep 15
done
这几乎是它得到的最高效率。重要的部分仅每15秒执行一次,脚本在其余时间休眠(因此不会浪费周期)。
https://stackoverflow.com/questions/1034243
复制相似问题