如何通过命令行在ubuntu中永远运行php文件

时间:2014-09-25 04:43:37

标签: php ubuntu

我在php中使用web-socket运行聊天服务问题是当我关闭命令行时连接也关闭,是否有解决方案使聊天服务可以永远运行。 我正在使用此命令

php -q server.php

2 个答案:

答案 0 :(得分:3)

在您的服务器上创建一个php文件,将其命名为start_server.php 并发布此内容

            <?php

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

            ?>

现在执行此命令

php start_server.php

答案 1 :(得分:0)

我正在使用screen来运行php脚本,到目前为止我还没有遇到任何问题。

  

screen是一个全屏窗口管理器,它在多个进程(通常是交互式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.host字符串:$ screen -ls