在给定时间后自动终止Linux进程/ php脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在给定时间后自动终止Linux进程/ php脚本相关的知识,希望对你有一定的参考价值。
我正在运行一个爬虫程序,每小时用php编写一个cron作业。当所有事情都按预期进行时,脚本会自动退出。但是,由于某些原因,有时它会陷入无限循环。它变得更糟,因为我使用锁定文件来避免重复运行,当爬虫被卡住时它永远不会再次运行,直到它手动杀死它(ps aux - > kill)
无论发生什么事情,我怎样才能确保脚本在几个小时后结束?
我应该在PHP代码中添加一行吗?在Linux中直接执行它不是更强大吗?
到目前为止,我最好的想法是使用所有必需的命令创建一个小批处理文件,然后直接使用cron而不是php脚本调用该批处理。
我是对的,命令应该是什么?
谢谢
编辑:迄今为止我发现的最好的是:http://www.linuxquestions.org/questions/linux-general-1/how-to-kill-the-process-after-specific-time-624453
bash太长了,我希望有一个更聪明,更短的解决方案。
干杯
这会杀死一个小时前开始的php进程:
$(ps -eo comm,pid,etimes | awk '/^php/ {if ($3 > 3600) { print "kill "$2}}')
3600 - 第二个时间戳
附:你可以运行命令
> ps -eo comm,pid,etimes
之前和之后确保一切顺利。
P.P.S.我知道这是一个老问题,但有人可能会发现它有用
以上是关于在给定时间后自动终止Linux进程/ php脚本的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核进程管理 ( 进程状态 | 进程创建 | 进程终止 | 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 )