Как запустить только один фоновый процесс из файла php в заданиях cpanel cron? - PullRequest
0 голосов
/ 04 мая 2020

Мне нужно запустить мой php скрипт в background , используя cpanel cron job , скрипт это infinity l oop, который может быть остановлен иногда, как иметь только один процесс того же файла, работающий в фоновом режиме? Я имею в виду, можно ли проверить фоновые процессы , и если тот же файл не был запущен , задание cron запустит его, в противном случае ничего не сделает . Я пытался что-то подобное для файла phpscript.php:

ps -ef|grep phpscript.php |grep -v grep; if [ $? == "0" ]; then echo "Running"; else echo "Restart";php /path/to/restart/phpscript.php &; fi >/home/username/cronlogs.txt 2>&1;

Но я каждый раз получал пустой файл журнала, как правильно сделать что-то подобное?

1 Ответ

0 голосов
/ 04 мая 2020

Кажется, вы забыли == там:

if [ $? = "0" ]

Вы должны заменить его на:

if [ $? == "0" ]

Кроме того, если вы можете установить приложение на сервер, возможно, вы следует взглянуть на supervisord, который позволяет вам: Запустить приложение как демон и перезапустить его, если приложение не запущено.

...