Попытка запуска php-скрипта в фоновом режиме из php-скрипта с использованием функции exec () на raspberry pi - PullRequest
1 голос
/ 21 сентября 2019

Я хочу, чтобы чат-бот работал на моем Raspberry Pi.

В командной строке я ввожу эту команду:

nohup php /path/to/script.php >/dev/null 2>&1 &

И это работает.Когда я решаю, что бот должен быть выключен, я ввожу эту команду:

killall php

Это работает, но я хочу иметь возможность запускать и останавливать скрипт из браузера.

Итак, в моем сценарии php панели инструментов ....

//This command works.
$runningProc = exec("pgrep -a php");


//This command does not. The process starts, but immediately ends
$startCommand = "nohup php /path/to/script.php >/dev/null 2>&1 &";
exec($startCommand);

//This command does not seem to work for a nohup started from the command line. 
exec("killall php");

Хорошо, поэтому я разобрался, что происходит, как только нашел некоторые соответствующие журналы.

В своем файле панели инструментов я изменил аргумент exec () на:

$startCommand = "nohup php script.php >/dev/null 2> nohup.out &";
exec($startCommand);

Таким образом, я мог просмотреть файл nohup.out на наличие ошибок.

Первая команда require () вызвала ошибку «Нет такого файла».Изменение этой функции на полный путь к файлу заставило все работать как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...