在后台运行 php 脚本

在后台运行 php 脚本

我尝试了以下命令行代码在后台运行 php 脚本。

php server.php &

这有效。问题是:如果我关闭计算机上的终端窗口,php 脚本也会停止。我希望它“无限”运行。它是一个 websocket 服务器,因此它必须持续运行。

我怎样才能实现这个目标?

提前致谢!

编辑:我已经找到了答案(我猜这个问题问得太早了)。

nohup php server.php &

答案1

您可以使用screen它打开虚拟终端,在那里运行脚本。

我建议使用screen -S php_script。然后您可以运行脚本(即使没有 &)。使用 CTRL + A、D 您可以断开与终端的连接。您可以使用 重新连接screen -r到终端。

答案2

虽然 Boba Fit 的答案会对您有所帮助,但我认为还有更好的方法可以在后台运行服务器。如果重新启动,您可能希望服务器再次运行。

我用了导师在类似的用例中。在我的例子中,它是一个长时间运行的 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

相关内容