有没有办法在PHP程序运行时杀死它';他在工作吗?

有没有办法在PHP程序运行时杀死它';他在工作吗?,php,process,kill,Php,Process,Kill,有没有办法在PHP程序运行时杀死它?我知道在Linux/Unix中我可以做到 ps -u [username] 它将告诉我正在运行哪些进程。要停止进程,我只需输入 kill [process #] 使用PHP,有没有办法查看远程服务器上当前正在运行哪些进程,并终止单个程序的完成?理想情况下使用exec() 我问的原因是我在一个共享主机环境中,我直接在服务器上工作和测试我的程序。。。偶尔我会做一些愚蠢的事情,比如输入一个荒谬的循环数,不经意间,可能需要几分钟到一个小时才能真正完成 看到几乎没有

有没有办法在PHP程序运行时杀死它?我知道在Linux/Unix中我可以做到

ps -u [username]
它将告诉我正在运行哪些进程。要停止进程,我只需输入

kill [process #]
使用PHP,有没有办法查看远程服务器上当前正在运行哪些进程,并终止单个程序的完成?理想情况下使用exec()

我问的原因是我在一个共享主机环境中,我直接在服务器上工作和测试我的程序。。。偶尔我会做一些愚蠢的事情,比如输入一个荒谬的循环数,不经意间,可能需要几分钟到一个小时才能真正完成

看到几乎没有关于这个主题的信息,我想这将是一个有趣的问题


谢谢

您可以在发生循环风险之前更改设置时间限制设置,使脚本在10秒后停止(如果您愿意)


如果你有一个无限循环或什么的,把这个

    while(1){

    if(!file_exists("continue.txt")){
    die("Stop");
    }

//Your Code here.

    }

因此,当您删除该文件“continue.txt”时,您的脚本将终止。

请您的主机提供商提供SSH访问权限,并以Unix方式执行此操作。您仍然可以使用
系统
函数和好友模拟shell访问:

exec("ps --no-header -eo pid,user,comm", $output);
foreach ($output as $line) {
    $line = preg_split('#\s+#', trim($line));
    echo "PID: $line[0] USER: $line[1] PRG: $line[2]\n";
}

免责声明:即使您具有shell访问权限,也可能无法终止Apache进程。

您不能从*nix shell终止有问题的进程吗?您是否正在尝试使用一个php程序,该程序根据一些标准自动识别它们?本质上,如果它们属于你的用户ID,你应该能够杀死它们;如果脚本语言是合适的,它应该允许您执行任意shell命令-因此不清楚问题出在哪里?为什么不使用
exec()执行
kill
(或者使用SSH并执行相同的操作)。您还可以使用
set\u time\u limit()
限制PHP程序的运行时间。我在一个新页面上尝试了
echo exec(“ps”)
,它返回了一个进程ID。我试图终止它,但我很确定它只是列出了调用
exec()
的新页面的ID。用户问的是如何停止正在运行的进程,而不是如何防止进程运行过长谢谢!这真的很好。让我困惑的一件事是为什么
echo exec(“ps”)
没有输出数组。。。我假设它与
$output
有关?