Linux - может ли cron запускать сценарий только во время работы указанного приложения?
1
Я хочу запускать скрипт каждые 5 секунд, но (для экономии ресурсов), только когда запущено указанное приложение. Есть ли способ сделать это с помощью crontab?
Минимум Cron составляет 1 минуту. Если вы хотите меньше, вы должны построить скрипт с бесконечным циклом и «спать 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
Ответы:
Был похожий вопрос:
https://askubuntu.com/questions/800/how-to-run-scripts-every-5-seconds
Минимум Cron составляет 1 минуту. Если вы хотите меньше, вы должны построить скрипт с бесконечным циклом и «спать 5». И вы можете проверить, работает ли указанное вами приложение с pgrep. Подобно:
Пример:
Допустим, скрипт, который вы хотите запустить, это /tmp/test2.sh
мы можем запустить его, если каждые 5 секунд запускается ssh:
источник