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

Я попробовал следующий код командной строки, чтобы запустить php-скрипт в фоновом режиме.

php server.php &

Это работает. Проблема в том, что если я закрываю окно терминала на моем компьютере, php-скрипт также останавливается. Я хочу, чтобы он работал "бесконечно". Это сервер веб-сокетов, поэтому он должен работать постоянно.

Как мне этого добиться?

Спасибо заранее!

Редактировать: Я уже нашел ответ (задал этот вопрос раньше, я думаю).

nohup php server.php &
1
задан 4 July 2018 в 14:35

2 ответа

Вы можете использовать screen, чтобы открыть виртуальный терминал, в котором может выполняться скрипт.

Рекомендую использовать screen -S php_script. Затем вы можете запустить свой скрипт (даже без & amp;). С помощью CTRL + A, D вы можете отключиться от термина. Вы можете восстановить соединение с screen -r обратно на терминал.

0
ответ дан 4 July 2018 в 14:35

Хотя ответ Бобы Фит поможет вам, я думаю, что есть лучший способ запустить ваш сервер в фоновом режиме. В случае перезагрузки вы, скорее всего, захотите снова запустить сервер.

Я использовал Supervisor в аналогичном случае. В моем случае это был длительный процесс PHP для планирования фоновых задач с использованием JMSJobQueueBundle .

Единственное, что вам нужно настроить, это супервизор и настроить ваш процесс:

[program:your_websocket_server]
command=php server.php &
process_name=%(program_name)s
numprocs=1
directory=/tmp
autostart=true
autorestart=true
startsecs=5
startretries=10
user=www-data
redirect_stderr=false
stdout_logfile=%capistrano.shared_dir%/jms_job_queue_runner.out.log
stdout_capture_maxbytes=1MB
stderr_logfile=%capistrano.shared_dir%/jms_job_queue_runner.error.log
stderr_capture_maxbytes=1MB
0
ответ дан 4 July 2018 в 14:35

Другие вопросы по тегам:

Похожие вопросы: