我管理Unix系统,有时像CGI脚本这样的程序永远运行,有时会消耗大量CPU时间并浪费资源。杀死长时间运行失控程序的程序
我想要的程序(通常从cron调用),它可以杀死这些逃逸,根据以下标准(与AND和OR的组合):
- 名称(由正则表达式给定)
- CPU时使用
- 经过的时间(其被阻塞在I/O程序)
我真的不知道该怎么在这种节目类型的搜索引擎。我当然可以用Python自己写,但我很懒,可能有一个很好的程序已经存在?
(我没有标记我用语言名称的问题,因为在Perl或Ruby或程序的任何会工作为好)
我管理Unix系统,有时像CGI脚本这样的程序永远运行,有时会消耗大量CPU时间并浪费资源。杀死长时间运行失控程序的程序
我想要的程序(通常从cron调用),它可以杀死这些逃逸,根据以下标准(与AND和OR的组合):
我真的不知道该怎么在这种节目类型的搜索引擎。我当然可以用Python自己写,但我很懒,可能有一个很好的程序已经存在?
(我没有标记我用语言名称的问题,因为在Perl或Ruby或程序的任何会工作为好)
大多数watchdig这样的程序或库只是想看看是否给定进程正在运行,所以我会说你最好写自己的,使用现有的库提供过程信息。
尝试使用系统级配额执行。大多数系统将允许为不同用户设置每个进程的CPU时间限制。
实例:
/etc/security/limits.conf
/etc/login.conf
CGI脚本通常可在他们自己的用户ID来运行,例如使用mod_suid
为Apache。
这可能是更多的东西像什么您寻找的:
在这种情况下,它是通过CGI运行的Apache,我毫不犹豫地惩罚,因为一些脚本的用户的httpd。根据程序的不同,可能会更改我的Apache安装程序以使其他用户运行CGI?从来没有尝试过。 – bortzmeyer 2008-12-21 21:03:35
是的,你可以用mod_suid来完成。 – 2008-12-22 07:36:16