Php 关闭控制台后CentOS 7上的WebSocket
当我打开控制台并编写Php 关闭控制台后CentOS 7上的WebSocket,php,apache,websocket,Php,Apache,Websocket,当我打开控制台并编写php服务器时,phpwebsockets工作得很好。但是当我关闭会话时,WebSocket停止工作。我怎样才能一直工作?这是我的server.php文件-不复杂: use Ratchet\Server\IoServer; use Ratchet\Http\HttpServer; use Ratchet\WebSocket\WsServer; $server = IoServer::factory( new HttpServer( new WsSer
php服务器时,php
websockets工作得很好。但是当我关闭会话时,WebSocket停止工作。我怎样才能一直工作?这是我的server.php
文件-不复杂:
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
$server = IoServer::factory(
new HttpServer(
new WsServer(
new WebSocket() // <-- My class, ignore it
)
),
SERVER_PORT,
SERVER_HOST
);
$server->run();
使用Ratchet\Server\IoServer;
使用Ratchet\Http\HttpServer;
使用Ratchet\WebSocket\WsServer;
$server=IoServer::工厂(
新的HttpServer(
新WsServer(
新建WebSocket()//运行();
在CentOS 7上使用PHP 5.6运行apache 2.4.6。安装linux屏幕工具: yum-y安装屏幕 创建新屏幕:
screen -S SESSIONNAME
返回屏幕:
screen -r SESSIONNAME
退出屏幕:
ctrl + a + d
打开屏幕时:导航到应用程序的路径并启动它。
当你想出去的时候用ctrl+a+d。当你想回去的时候用:screen-r SESSIONNAME
屏幕并不是您出现问题的100%原因。如果您的应用程序宕机一天,您必须检查应用程序中是否存在内存泄漏或其他错误
目前,请转到screen-r SESSIONNAME查看屏幕介绍中发生的情况。我找到了一种方法-创建自己的服务在后台运行WebSocket。对我来说,它更易于维护。以下是我的步骤(需要EPEL): 然后插入内容(将ExecStart更改为您自己的): 重新加载systemd并启动新服务:
$ systemctl daemon-reload
$ systemctl start websockets
启动时启动服务:
$ systemctl enable websockets
停止服务器:
$ systemctl stop websockets
当您关闭控制台时,您也会关闭应用程序。使用屏幕外的屏幕使用:ctrl+A和ctrl+D。这对我有什么帮助?我不需要
屏幕外的,但WebSocket可以工作,直到我以某种方式停止它(如服务),它需要每次都运行。无论如何:-bash:screen:command not found
。创建屏幕介绍,让屏幕运行你的套接字,然后你可以离开屏幕并关闭会话(关闭控制台终端),你的webSocket将夜以继日地工作!我明白了,但我找到了更好的方法(对我来说)使用自定义服务,我可以在重新启动时运行该服务,它比屏幕更方便。
$ systemctl enable websockets
$ systemctl stop websockets