Bash скрипт, который запускает php файл каждые 5 секунд
Bash скрипт:
$ cat test.sh
#!/bin/bash
while true
do
/home/user/public_html/website.com/test.php
sleep 5
done
Я пытаюсь вызвать это с помощью cron:
* * * * * /home/user/public_html/website.com/test.sh
Где моя ошибка? Имеет ли значение, где находится .sh?
РЕДАКТИРОВАТЬ: я исправил все проблемы сверху. Я также создал эту задачу cron для предотвращения нескольких процессов:
* * * * * flock -n /tmp/test.lock /home/user/public_html/website.com/test.sh
Проблема в том, что bash выполняет php каждые 5 секунд, и это создает несколько процессов, таких как:
user 12:31 /home/user/public_html/website.com/test.php
user 12:31 /home/user/public_html/website.com/test.php
user 12:31 /home/user/public_html/website.com/test.php
Как это контролировать? Мне нужно изменить скрипт bash, чтобы он мог определить, выполняется ли PHP.
Это правильно:
#!/bin/bash
while true
if [ "$(pidof test.php)" ]
then
echo "Running"
else
do
/home/user/public_html/website.com/test.php &
sleep 5
fi
done