php – 即使关闭SSH终端后,如何保持websocket服务器运行?
发布时间:2020-12-13 18:01:17 所属栏目:PHP教程 来源:网络整理
导读:所以,我正在使用Ratchet with PHP,并且目前已将一个成功的websocket示例上传到我的服务器. 它在我转到SSH之后工作,然后只需手动运行“php bin / chat-server.php”. 我想知道的是,在商业环境中,如何让聊天服务器保持运行? 谢谢. 做一个守护进程. 如果您使用
所以,我正在使用Ratchet with
PHP,并且目前已将一个成功的websocket示例上传到我的服务器.
它在我转到SSH之后工作,然后只需手动运行“php bin / chat-server.php”. 我想知道的是,在商业环境中,如何让聊天服务器保持运行? 谢谢.
做一个守护进程.
如果您使用的是symfony2,则可以使用Process Component. // in your server start command $process = new Process('/usr/bin/php bin/chat-server.php'); $process->start(); sleep(1); if ($process->isRunning()) { echo "Server started.n"; } else { echo $process->getErrorOutput(); } // in your server stop command $process = new Process('ps ax | grep bin/chat-server.php'); $process->run(); $output = $process->getOutput(); $lines = preg_split('/n/',$output); // kill everything (there can be multiple processes if they are spawned) $stopped = False; foreach ($lines as $line) { $ar = preg_split('/s+/',trim($line)); if (in_array('/usr/bin/php',$ar) and in_array('bin/chat-server.php',$ar)) { $pid = (int) $ar[0]; posix_kill($pid,SIGKILL); $stopped = True; } } if ($stopped) { echo "Server stopped.n"; } else { echo "Server not found. Are you sure it's running?n"; } 如果您使用的是原生PHP,请不要担心, // in your server start command _ = popen('/usr/bin/php bin/chat-server.php','r'); echo "Server started.n"; // in your server stop command $output = array(); exec('ps ax | grep bin/chat-server.php',&$output); $lines = preg_split('/n/',SIGKILL); $stopped = True; } } if ($stopped) { echo "Server stopped.n"; } else { echo "Server not found. Are you sure it's running?n"; } 当然还有其他有用的PHP库用于处理守护进程.谷歌搜索“PHP守护进程”将给你很多指示. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |