Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 终端关闭几分钟后,nohup进程停止运行_Php_Ssh_Server_Nohup - Fatal编程技术网

Php 终端关闭几分钟后,nohup进程停止运行

Php 终端关闭几分钟后,nohup进程停止运行,php,ssh,server,nohup,Php,Ssh,Server,Nohup,我想要一个程序(用php编写)在远程服务器上运行,即使在我注销之后。该程序非常简单:它什么也不做,只睡10秒(只是为了测试),如下所示: function index() { while(true) { sleep(10); } } 因此,我通过SSH连接到远程服务器。然后像这样启动程序: nohup php -f index.php & 我希望它在我注销后在服务器的后台运行。但我发现,每次我关闭终端后,程序只能运行大约10分钟,然后停止

我想要一个程序(用php编写)在远程服务器上运行,即使在我注销之后。该程序非常简单:它什么也不做,只睡10秒(只是为了测试),如下所示:

function index() 
{
    while(true)
    {
        sleep(10);
    }
}
因此,我通过SSH连接到远程服务器。然后像这样启动程序:

  nohup php -f index.php &
我希望它在我注销后在服务器的后台运行。但我发现,每次我关闭终端后,程序只能运行大约10分钟,然后停止,尽管它不会在终端关闭后立即停止。如果我不关闭终端,它可以永远运行(如预期的那样)。谁能告诉我原因是什么?如何解决这个问题?我也尝试过使用本文建议的“否认”,但遇到了同样的问题:
顺便说一句,我使用的是共享远程主机,因此可能是由于某些服务器设置,但这很奇怪,因为它在终端打开时工作正常。

您可以在执行
nohup
命令后立即尝试使用
disown

如果仍然不起作用,请考虑使用<代码>屏幕<代码>。它是一个有用的工具,允许“虚拟终端”运行,即使在注销后也是如此

  • 使用
    screen-dmS someName
    创建屏幕。(例如,
    屏幕-dmS myPhpScript
  • 使用
    screen-r
    进入您的屏幕,您的窗口将被清除
  • 执行您的命令(
    php-f index.php
    ,no
    &
    !)
  • 执行[Ctrl]+[A](似乎什么也不做),然后按[D]退出屏幕。屏幕将保留在背景中。您将返回到上一个提示(就在步骤2之前),其中有一条消息指示
    [从XXXXX.someName分离]
  • 您可以使用
    screen-r
    screen-x someName
    返回屏幕

  • 这是一个服务器问题。A2hosting不允许进程在后台运行以共享托管。因此,该进程将在注销后的某个时间(不是立即)终止。

    谢谢。但我不清楚第二步和第三步。在步骤2中,我是否应在后台运行该命令(即,在末尾附加(&A)?在步骤3中,当我按下“Ctrl+A”键后,它什么也不做,然后我按下“D”键,它仍然什么也不做。我做错什么了吗?请记住我是通过SSH连接到服务器的。@TaoHu哇!我忘了一步。我编辑了我的帖子。另外,不要再使用“&”!万一你需要的话!(在执行[Ctrl]+[A]和[D]之后出现了“[Distached from yourPhp]”)嗨,HeySora,我尝试了你的方法,这个过程可以在终止之前工作更长时间。我终于发现它被服务器杀死了。我使用的是A2hosting(共享主机),它不允许在后台运行无人值守的进程。因此,即使是屏幕进程也会在注销后的一段时间内被终止。无论如何,谢谢你。