Я пытаюсь отправить сигнал SIGHUP во внешний процесс, используя PHP.В настоящее время я делаю следующее:
$pid = shell_exec('ps -ef | grep mosquitto | grep -v grep | awk \'{print $2}\'');
shell_exec('kill -s HUP $pid');
Когда я запускаю « php test.php » из командной строки, я проверяю, что сигнал отправляется правильному процессу,как и ожидалось.
Когда я вызываю скрипт, посещая http://foo.com/bar/test.php,, сигнал не отправляется, и shell_exec ничего не возвращает.
Для тестирования я временно запустил PHP с правами rootно имел ту же проблему, поэтому я предполагаю, что это не проблема с разрешениями.
Интересно, что shell_exec возвращает выходные данные для команды pwd и uptime команда для браузера, но не команда ls .Но когда запускается из командной строки, shell_exec возвращает вывод из ls нормально.
Есть ли другое ограничение этих команд, которое я пропускаю?
Кроме того, несколько замечаний:
- Безопасный режим выключен
- error_reporting = E_ALL
- Никакие функции не отключены
- Я попытался явно указать на двоичные файлы (например, / bin / ps иsh -c ps)