Я хочу, чтобы чат-бот работал на моем 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 () вызвала ошибку «Нет такого файла».Изменение этой функции на полный путь к файлу заставило все работать как положено.