У меня есть два компьютера. На первом компьютере у меня работает apache со всем моим веб-кодом. На втором компьютере у меня хранятся большие объемы данных с помощью сценария поиска (запуск сценария обычно занимает несколько часов). По сути, я создаю веб-интерфейс для доступа к этим данным без каких-либо задержек.
так я звоню:
exec("bash initial.bash");
это скрипт драйвера, который находится в моей папке Apache. Он вызывает скрипт на другом компьютере.
призвание:
ssh otherMachine temp.bash&
этот скрипт вызывает скрипт извлечения данных на втором компьютере.
Если я вызываю initial.bash в терминале, все работает гладко и успешно, но если я вызываю его в моем файле PHP, тогда все мои команды в initial.bash запускаются, за исключением ssh otherMachine temp.bash&
. Я ставлю & в конце этого, так что temp.bash будет работать в фоновом режиме, так как это займет несколько часов.
Я не уверен, почему вложенный скрипт не запускается при вызове Apache. Есть ли лучшая альтернатива, чем использование exec или shell_exec для вызова скрипта, который в конечном итоге вызывает другой скрипт. Причина, по которой я не вызываю сценарий непосредственно на втором компьютере, заключается в том, что для запуска программы требуется время. Shell_exec не отображает страницу php, пока скрипт не будет завершен.