2014-09-25 85 views
1

我在php中使用web-socket运行聊天服务问题是当我关闭命令行时连接也关闭,是否有解决方案以便聊天服务可以永远运行。 我使用这个命令如何在命令行中永久在ubuntu中运行php文件

php -q server.php 
+2

nohup的PHP -q server.php& – Cheery 2014-09-25 04:45:15

+0

我不知道,如果cron作业将帮助您与此有关。 – andrex 2014-09-25 04:50:17

+0

@andrex否,cron作业不适用于此 – john 2014-09-25 04:54:05

回答

3

您的服务器它的名字作为start_server.php 创建一个PHP文件,并发布该内容

  <?php 

      $shell_command = "php -q server.php > /dev/null &"; 
      shell_exec($shell_command); 

      ?> 

现在执行这个命令

PHP start_server.php

0

我使用screen运行php脚本,到目前为止我没有真正面临任何问题。

屏幕是一个全屏幕窗口管理器,它在几个进程(通常是交互式shell)之间多路复用一个物理终端。每个虚拟终端提供DEC VT100终端的功能,此外,还提供ISO 6429(ECMA 48,ANSI X3.64)和ISO 2022标准(例如插入/删除线路和支持多个字符集)的多种控制功能。每个虚拟终端都有一个回滚历史记录缓冲区,以及允许在窗口之间移动文本区域的复制粘贴机制。

更多关于屏幕here

使用屏幕的一个缺点是,如果您在脚本中进行了更改,则必须终止虚拟终端并创建一个新的更改才能生效。

下面是一个示例代码:

$ screen -L php /path/to/php/script 

这将创建一个新的虚拟终端。

一些有用的命令:

  • 要取下屏幕(一旦你在虚拟终端):ctrl + a + d
  • 要恢复屏幕(从一次分开你的主终端):$ screen -r 如果有多个屏幕在您的机器上运行上述命令之后应该跟随每个屏幕唯一的pid.tty.host字符串
  • 终止屏幕:ctrl + c
  • 要列出pid.tty.hos每个终端的牛逼字符串:$ screen -ls