Napisałem skrypt, który ma za zadanie wywoływać w nieskończoność dany skrypt PHP na moim serwerze VPS.
Wywoływanie w nieskończoność daje mi komenda
watch.
Komendę
watch odpalam tylko wtedy, gdy skrypt
index.php nie jest uruchomiony.
Oczywiście czasem może zdarzyć się, że
watch zakończy swoje działanie. Na tę ewentualność poniższy skrypt odpalam co minutę za pomocą CRON'a. Niestety, nie daje to żadnego skutku —
watch w ogóle się nie uruchamia.
Jeśli jednak odpalę skrypt ręcznie, wszystko działa (dopóki go nie przerwę np. kończąc sesję).
skrypt.sh:
#!/bin/sh
SERVICE='/var/www/cron'
if ps ax | grep -v grep | grep -v "You have" | grep $SERVICE
then
echo "$SERVICE service running, everything is fine"
else
echo "$SERVICE is not running"
watch -n 0 /usr/bin/php /var/www/cron/index.php
echo "$SERVICE is not running!" | mail -s "$SERVICE down" root
fi
* * * * * /home/xerif/skrypt.sh > /home/xerif/skrypt.txt
Za każdym razem zawartość pliku
skrypt.txt wynosi:
/var/www/cron/w24 is not running
Jakich zębatek użyć, by ten zegarek ruszył?