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

如何通过命令行在ubuntu中永远运行php文件,php,ubuntu,Php,Ubuntu,我正在使用php中的web套接字运行聊天服务问题是,当我关闭命令行时,连接也会关闭,是否有解决方案使聊天服务可以永远运行。 我正在使用这个命令 php -q server.php 在服务器上创建一个php文件,将其命名为start_server.php 并发布此内容 <?php $shell_command = "php -q server.php > /dev/null &"; shell_exec

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

php -q server.php

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

            <?php

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

            ?>

现在执行这个命令


php start_server.php

我使用
屏幕
来运行php脚本,到目前为止,我还没有遇到任何问题

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

更多关于屏幕

使用screen的一个缺点是,如果在脚本中进行更改,则必须终止虚拟终端并创建一个新的虚拟终端,以使更改生效

下面是一个示例代码:

$ screen -L php /path/to/php/script
这将创建一个新的虚拟终端

一些有用的命令:

  • 要分离屏幕(一旦进入虚拟终端):
    ctrl+a+d
  • 要恢复屏幕(从主终端分离后):
    $screen-r
    如果您的机器上运行多个屏幕,则上述命令后面应跟随pid.tty.host字符串,该字符串对于每个屏幕都是唯一的
  • 终止屏幕:
    ctrl+c
  • 要列出每个终端的pid.tty.host字符串:
    $screen-ls


nohup php-q server.php&我不确定cron-jobs是否能帮到您。@andrex不,cron-job不适合您this@Cheery谢谢,伙计,这对我很管用。您可以将此作为答案发布