是否有一种方法可以在PHP程序工作时杀死它?我知道在Linux/Unix中我可以做
ps -u [username]
它会告诉我哪些进程正在运行。要停止进程,只需输入
kill [process #]
使用PHP是否有任何方法可以查看当前在远程服务器上运行的进程并在完成时杀死单个程序?理想情况下使用exec()?我问这个问题的原因是我在一个共享的主机环境中,我在&直接在服务器上测试我的程序…我偶尔会做一些愚蠢的事情,比如不小心输入了大量的循环,这些循环可能需要几分钟到一个小时才能真正完成。
看到几乎没有关于这个主题的信息,我想这将是一个有趣的问题。
谢谢!
向您的主机提供商请求SSH访问,并以Unix方式完成。您仍然可以使用system
函数和朋友来模拟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进程。
如果你有无限循环之类的,把这个
while(1){
if(!file_exists("continue.txt")){
die("Stop");
}
//Your Code here.
}
所以当你删除文件"continue.txt"时,你的脚本就死了。
您可以在循环风险之前更改set_time_limt设置,如果您愿意,可以使脚本在10秒后停止。
http://php.net/manual/en/function.set-time-limit.php