有没有办法在PHP程序运行时终止它?我知道在Linux / Unix中我可以做到
ps -u [username]
它会告诉我正在运行的进程。要停止进程,我只需输入
kill [process #]
使用PHP有什么方法可以查看当前正在远程服务器上运行的进程并从完成中终止单个程序?理想情况下使用exec()?
我问的原因是我在一个共享的托管环境中,我在&直接在服务器上测试我的程序...偶尔我会做一些愚蠢的事情,比如输入一个荒谬的循环数,不小心,实际完成可能需要几分钟到一个小时。
看到几乎没有关于这个主题的信息,我认为扔掉那里是一个有趣的问题。
谢谢!
答案 0 :(得分:1)
如果你有一些无限循环或其他东西,请把这个
while(1){
if(!file_exists("continue.txt")){
die("Stop");
}
//Your Code here.
}
所以当你删除那个文件“continue.txt”时,你的脚本就会死掉。
答案 1 :(得分:1)
请求您的托管服务提供商进行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进程。
答案 2 :(得分:-1)
您可以在循环风险之前更改set_time_limt设置,如果您愿意,可在10秒后停止脚本。