Запустите кластер oop, используя sbin / start-dfs. sh - PullRequest
0 голосов
/ 19 февраля 2020

Я хочу запустить oop демонов с PHP вместо терминала.

Когда я запускаю start-dfs. sh, он работает хорошо.

PHP код, который я использую:

<?php
    echo shell_exec('/usr/local/hadoop3/sbin/stop-dfs.sh');
?>

вывод приведенного выше кода:

Запуск начальных значений на стартовых датодах [localhost]. Начиная вторичные наменоды [chbp c -VirtualBox].

, но когда я набираю URL http://localhost:9870/dfshealth.html#tab-overview в браузере (чтобы проверить состояние моего Had oop), он на самом деле не несмотря на вывод выше.

1 Ответ

0 голосов
/ 19 февраля 2020

Ответ

<?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

...