Linux - cron 是否仅当指定的应用程序运行时才运行脚本?

Linux - cron 是否仅当指定的应用程序运行时才运行脚本?

我想每 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

相关内容