我想每 5 秒运行一次脚本,但(为了节省资源)仅在指定的应用程序运行时运行。有没有办法使用 crontab 来实现这一点?
答案1
还有类似的问题:
https://askubuntu.com/questions/800/how-to-run-scripts-every-5-seconds
Cron 最小值为 1 分钟。如果想要更短的时间,则必须构建具有无限循环和“sleep 5”的脚本。并且您可以使用 pgrep 检查您指定的应用程序是否正在运行。例如:
pgrep YOURAPP > /dev/null 2>&1 && YOURSHELL.sh
例子:
假设您要运行的脚本是 /tmp/test2.sh
#!/bin/bash
echo $$ >> /tmp/pids
如果每 5 秒运行一次 ssh,我们就可以运行它,如下所示:
#!/bin/bash
while true
do
pgrep ssh > /dev/null 2>&1 && /tmp/test2.sh
sleep 5
done