Резюме: у меня есть команда, которая запускается на странице PHP, вызываемая Ajax.
Последний пример PHP:
$linuxCmd = "cd ~/apps && node app.js > scr_log.log 2>&1 &";
exec($linuxCmd);
Я также пробовал:
$linuxCmd = "cd ~/apps && node app.js > scr_log.log 2>&1";
$linuxCmd = "cd ~/apps && node app.js &";
$linuxCmd = "cd ~/apps && node app.js > /dev/null 2>&1 &";
$linuxCmd = "cd ~/apps && node app.js 2>&1 /dev/null &";
И подумайте, что за прошедший день я рассмотрел все возможные комбинации этих команд.Кажется, что независимо от того, что я пробовал, функция успеха ajax на предыдущей странице не запускается.Я думал, что выполнение вышеописанного процесса в фоновом режиме позволит странице PHP вернуться к вызову ajax на странице javascript и продолжить выполнение сценариев, но не повезло.
Я также пытался добавить exit()
и return()
после функции exec()
, но он не достигает их.
Кроме того, скрипт (app.js) запускается впетля.Он прекращается, когда значение в базе данных изменяется, так как он проверяет это каждый раз, когда запускается в цикле.У меня также есть способ убить процесс, который работает нормально и возвращается к функции успеха этого ajax-запроса, потому что он просто завершает процесс.
Другими словами, мне нужен скрипт, который я запускаю из PHP exec (), чтобы он постоянно запускался после запуска, но мне также нужна моя страница javascript внешнего интерфейса для продолжения после запуска этого процесса в серверной части.
Мне интересно, возможно ли это по какой-то причине.И если так, если есть лучший способ, чем функция exec () в PHP.Также попробовал shell_exec с парой вышеперечисленных комбинаций.