Intereting Posts
Что происходит с аргументом в псевдониме после его использования один раз? Различные результаты при использовании скрипта или кода вставки Список всех согласованных файлов, начиная с индекса что означает «dpkg-buildpackage -rfakeroot -d -us -uc -S failed» означает? Как мне снова и снова сжимать c символическими ссылками в bash? Каковы последствия перезапуска sshd для существующих сеансов ssh? Относительно логического печатного рабочего каталога и физического печатного рабочего каталога Разделить аналогичные строки awk принимает имена файлов вместо файлов в цикле Если я устанавливаю java bin PATH Dockerfile Jar Command, но tomcat не делает Сохранение и восстановление вкладок терминала с заголовком пользовательских вкладок Можно ли разрешить выполнение файлов из cifs mount в bash? хранилище паролей, хранящее некоторые пароли в текстовом виде Для чего можно использовать f_bsize? (Это похоже на st_blksize?) печать строки "canonical print-escaped form"

Что такое Best Practice для запуска PHP в фоновом режиме?

При запуске следующего в командной строке он будет приостановлен до тех пор, пока я не выведу команду fg:

/usr/bin/php -r 'phpinfo();' & 

Это имеет место независимо от того, содержится ли код PHP в файле с shebang из #!/usr/bin/php .

Я запускаю CentOS и bash shell.

Нет никакого метода, специфичного для PHP, когда дело доходит до выполнения заданий в фоновом режиме. Широко распространенные методы:

  1. Использование screen . Установите screen (если он еще не установлен), затем запустите PHP-скрипт под экраном. Вы можете отсоединиться от screen любое время и выйти из машины, и сценарий будет продолжать работать. Ниже приведена одна из нескольких сот обучающих программ, посвященных использованию screen .

  2. Использование nohup . Использование:

nohup <yourPHPcommand> &

nohup позволит вашему скрипту «сказать нет» сигналу HANGUP при выходе из системы, в результате ваш PHP-скрипт будет работать даже после выхода из системы. Единственная проблема заключается в том, что вы не сможете перенести эту работу / процесс на передний план и посмотреть результат (если это имеет для вас значение). Вы можете перенаправить вывод в файл и посмотреть, что он распечатывает из этого файла.

Из этих двух я рекомендую использовать screen . Вы можете прикрепляться к экрану в любое время и управлять процессом так же, как если бы вы начали на переднем плане.

PS: – Запуск сценария с помощью амперсанда ( & ) в конце делает его в фоновом режиме, но сценарий / процесс уничтожается при выходе из терминала.