PHP websockets socket.bind()失败。关闭旧的php websocket

PHP websockets socket.bind()失败。关闭旧的php websocket,php,websocket,drupal-7,Php,Websocket,Drupal 7,我面临着与线程相关的相同问题 我正在使用WebSocket创建一个简单的聊天服务器。我有 当我运行创建 我的服务器上的websocket是第一次。如果脚本停止运行 由于某种原因,我试图重新运行它,我得到一个错误,说 脚本无法绑定套接字,因为它已存在 我如何制作一个脚本来查找这个旧套接字(假设我知道它运行在哪个端口上)并关闭它,以便建立新连接 在我的本地服务器中,我用来获取和终止进程 netstat -lntu 然后终止这个过程 sudo kill $(sudo lsof -t -i:9064)

我面临着与线程相关的相同问题

我正在使用WebSocket创建一个简单的聊天服务器。我有 当我运行创建 我的服务器上的websocket是第一次。如果脚本停止运行 由于某种原因,我试图重新运行它,我得到一个错误,说 脚本无法绑定套接字,因为它已存在

我如何制作一个脚本来查找这个旧套接字(假设我知道它运行在哪个端口上)并关闭它,以便建立新连接

在我的本地服务器中,我用来获取和终止进程

netstat -lntu
然后终止这个过程

sudo kill $(sudo lsof -t -i:9064) ,9064 is the port.

任何建议都会有帮助。

我喜欢在套接字启动时将pid存储到文件中

if (!file_put_contents(self::WEBSOCKET_ACTIVE_PID, getmypid())) {
    print 'Failed to store PID to file.';
    exit(1);
}
然后可以在shell中运行以下内容

kill -15 `cat websocket_pid.txt` || rm websocket_pid.txt || echo 'It does not look like a socket is running on this subdomain.'
<>请注意,您可能会考虑更加依赖于.< /p>的更健壮的情况。