Linux - Kann cron ein Skript nur ausführen, wenn eine angegebene Anwendung ausgeführt wird?

386
LPC11

Ich möchte alle 5 Sekunden ein Skript ausführen, aber (um Ressourcen zu sparen) nur, wenn eine angegebene Anwendung ausgeführt wird. Gibt es eine Möglichkeit, dies mit Crontab zu tun?

1
Verwenden Sie einen Wrapper, der crontab ändert, um die Anwendung aufzurufen? dirkt vor 7 Jahren 0

1 Antwort auf die Frage

2
Jaroslav Kucera

Es gab eine ähnliche Frage:

https://askubuntu.com/questions/800/how-to-run-scripts-every-5-seconds

Cron Minimum ist 1 Minute. Wenn Sie weniger wollen, müssen Sie ein Skript mit Endlosschleife und "sleep 5" erstellen. Sie können auch überprüfen, ob Ihre angegebene Anwendung mit pgrep ausgeführt wird. Mögen:

pgrep YOURAPP > /dev/null 2>&1 && YOURSHELL.sh 

Beispiel:

Angenommen, das Skript, das Sie ausführen möchten, ist /tmp/test2.sh

#!/bin/bash echo $$ >> /tmp/pids 

Wir können es ausführen, wenn alle 5 Sekunden ein ssh ausgeführt wird:

#!/bin/bash while true do pgrep ssh > /dev/null 2>&1 && /tmp/test2.sh sleep 5 done