Я попробовал следующий код командной строки, чтобы запустить php-скрипт в фоновом режиме.
php server.php &
Это работает. Проблема в том, что если я закрываю окно терминала на моем компьютере, php-скрипт также останавливается. Я хочу, чтобы он работал "бесконечно". Это сервер веб-сокетов, поэтому он должен работать постоянно.
Как мне этого добиться?
Спасибо заранее!
Редактировать: Я уже нашел ответ (задал этот вопрос раньше, я думаю).
nohup php server.php &
Вы можете использовать screen
, чтобы открыть виртуальный терминал, в котором может выполняться скрипт.
Рекомендую использовать screen -S php_script
. Затем вы можете запустить свой скрипт (даже без & amp;). С помощью CTRL + A, D вы можете отключиться от термина. Вы можете восстановить соединение с screen -r
обратно на терминал.
Хотя ответ Бобы Фит поможет вам, я думаю, что есть лучший способ запустить ваш сервер в фоновом режиме. В случае перезагрузки вы, скорее всего, захотите снова запустить сервер.
Я использовал 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