2008-12-21 74 views
2

我管理Unix系统,有时像CGI脚本这样的程序永远运行,有时会消耗大量CPU时间并浪费资源。杀死长时间运行失控程序的程序

我想要的程序(通常从cron调用),它可以杀死这些逃逸,根据以下标准(与AND和OR的组合):

  • 名称(由正则表达式给定)
  • CPU时使用
  • 经过的时间(其被阻塞在I/O程序)

我真的不知道该怎么在这种节目类型的搜索引擎。我当然可以用Python自己写,但我很懒,可能有一个很好的程序已经存在?

(我没有标记我用语言名称的问题,因为在Perl或Ruby或程序的任何会工作为好)

回答

0

大多数watchdig这样的程序或库只是想看看是否给定进程正在运行,所以我会说你最好写自己的,使用现有的库提供过程信息。

4

尝试使用系统级配额执行。大多数系统将允许为不同用户设置每个进程的CPU时间限制。

实例:

  1. Linux操作系统:/etc/security/limits.conf
  2. FreeBSD的:/etc/login.conf

CGI脚本通常可在他们自己的用户ID来运行,例如使用mod_suid为Apache。

+0

在这种情况下,它是通过CGI运行的Apache,我毫不犹豫地惩罚,因为一些脚本的用户的httpd。根据程序的不同,可能会更改我的Apache安装程序以使其他用户运行CGI?从来没有尝试过。 – bortzmeyer 2008-12-21 21:03:35

+0

是的,你可以用mod_suid来完成。 – 2008-12-22 07:36:16

相关问题