У меня есть PHP-скрипт, который использует клиент Mosquitto. Я использую замазку SSH для доступа к серверу. Я хочу постоянно запускать php-скрипт в фоновом режиме, даже когда я отключаюсь от putty. Я пробовал экран и nohup, но он останавливается при закрытии окна замазки
Спасибо
Простое решение
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=""
пусто)
С помощью screen
это гораздо лучшее решение, чем nohup.
screen позволяет вам называть сессии и позже присоединяться к ним, чтобы вам не приходилось использовать ps для поиска фоновых приложений
Вы можете начать именованный screen
сессия, как это
screen -S [session name]
От которого вы можете отсоединиться с помощью Ctrl—,d затем присоедините
screen -r [session name]
Вы также можете начать сеанс с командой в фоновом режиме с
screen -dmS [session name] [command]