запустить php скрипт в фоновом режиме и никогда не умрет linux

У меня есть PHP-скрипт, который использует клиент Mosquitto. Я использую замазку SSH для доступа к серверу. Я хочу постоянно запускать php-скрипт в фоновом режиме, даже когда я отключаюсь от putty. Я пробовал экран и nohup, но он останавливается при закрытии окна замазки

Спасибо

0

Решение

Простое решение

nohup php script.php &

Таким образом, вы запускаете скрипт в фоновом режиме и отключаете процесс от терминала. Если это не поможет, попробуйте disown Команда после этого. Eсть хороший ответ с подробным объяснением различий между этими командами.

Чтобы получить полный контроль над вашим сценарием, хорошим выбором будет System V сценарий инициализации. Есть шаблон на https://github.com/fhd/init-script-template, который вы можете использовать.

Скопировать шаблон в /etc/init.d каталог и переименуйте его. В шаблоне вам нужно изменить переменные:

dir="/your/working/directory"cmd="nohup php script.php"user="your user"

Делая это, вы сможете контролировать свой сценарий с помощью

/etc/init.d/your_script start
/etc/init.d/your_script stop

Убедитесь, что у вас есть права на запись в /var/log/ а также /var/run/или запустите скрипт как sudo(Покидать user="" пусто)

1

Другие решения

С помощью screen это гораздо лучшее решение, чем nohup.

screen позволяет вам называть сессии и позже присоединяться к ним, чтобы вам не приходилось использовать ps для поиска фоновых приложений

Вы можете начать именованный screen сессия, как это

screen -S [session name]

От которого вы можете отсоединиться с помощью Ctrl,d затем присоедините

screen -r [session name]

Вы также можете начать сеанс с командой в фоновом режиме с

screen -dmS [session name] [command]

https://www.gnu.org/software/screen/manual/screen.html

0

По вопросам рекламы [email protected]