Ответ
<?php
echo shell_exec('/usr/local/hadoop3/sbin/stop-dfs.sh > /dev/null &');
?>
Описание
Когда вы запускаете процесс демона с shell_exe c, вы должны отсоединиться от этого процесса для завершения вашей команды shell_exe c, но вы должны оставить процесс-демон в состоянии выполнения.
&
- предоставьте это.
Также вместо / dev / null вы можете использовать свой пользовательский файл журнала и вся информация из stop-dfs. sh перенаправит на этот файл.
Мой тест для этого решения
Скопируйте этот фрагмент в ваш bash console:
cat <<EOT > daemon.sh
while true; do date; sleep 1; done
EOT
chmod +x daemon.sh
cat <<EOT > daemon-runner.php
<?php
echo shell_exec(__DIR__ . '/daemon.sh > daemon-log &');
EOT
touch daemon-log
php daemon-runner.php
tail -f daemon-log
PS
Вы используете stop-dfs.sh
имя сценария для запуска вашего oop, также возможно вы перепутали имя сценария с start.sh
* * 1030