我有一个网页脚本,它需要很长时间才能运行(它应该需要很长时间)。我所说的"web脚本“是指通过在浏览器中访问页面来运行的脚本,而不是在命令行上执行的脚本。脚本是用PHP编写的,而我在LAMP堆栈上。
如果我想找到并杀死这个进程,我该怎么做?
“杀死”可能是个错误的词。我只想让脚本停下来。可以想象的是,我可以让这个脚本“监视”我的系统的某些状态发生变化,然后在它注意到这种变化时停止。如果我这样做,我不确定最好的方法是什么。无论如何,我对任何建议都是完全开放的。
发布于 2010-12-21 04:41:06
当脚本启动时,将其pid写到一个文件中,如下所示
file_put_contents(getmypid ().".pid","Running");
当脚本完成时,它会删除该文件。
然后创建另一个脚本,该脚本将运行form cron。它查找超过特定时间的pid文件,并对其执行kill $pid
很简单。
发布于 2010-12-21 04:39:34
您是否只是转到脚本的网页,即..www.mysite.com/mywebscript.php还是从另一个页面运行脚本?我建议使用system()或其他方法,这样就可以在linux平台上实际查找进程id。虽然,有人可能会否决我的提及系统()
此外,您还可以在脚本中使用线程。您可以让它执行任何操作,同时接受输入,并在任何时候发送命令杀死它。
https://stackoverflow.com/questions/4493675
复制相似问题