我有一个需要很长时间才能运行的Web脚本(而且它应该需要很长时间)。 “web脚本”是指通过访问浏览器中的页面并反对在命令行上执行而运行的脚本。该脚本是PHP的,我在LAMP堆栈上。
如果我愿意,我怎样才能找到并杀死这个过程?
“杀”可能是错误的词。我只想让脚本停止。我可以想象,这个脚本会“监视”我系统的某些状态发生变化,然后当它注意到变化时停止。如果我这样做,我不确定最好的方法是什么。无论如何,我完全接受任何建议。
答案 0 :(得分:3)
当脚本启动时,将其pid写入文件,例如
file_put_contents(getmypid ().".pid","Running");
当脚本完成后,它会删除文件。
然后,您创建另一个将运行cron表单的脚本。它会查找特定年龄段的pid文件,并对其进行kill $pid
简单。
答案 1 :(得分:0)
您是否只是转到脚本的网页,即www.mysite.com/mywebscript.php,或者您是从另一个页面运行脚本?我建议使用system()或其他东西,这样你就可以在linux平台上查找进程id。虽然,有人可能会投票我的提及系统()
此外,您可以在脚本中使用一个线程。你可以让它执行任何操作,并同时输入,只需发送命令就可以杀死它。