杀死长期失控程序的计划

时间:2008-12-21 10:47:28

标签: unix sysadmin

我管理Unix系统,有时像CGI脚本这样的程序会永远运行,有时会占用大量CPU时间并浪费资源。

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

  • 名称(由正则表达式提供)
  • 使用的CPU时间
  • 已用时间(对于在I / O上被阻止的程序)

我真的不知道在这种程序的搜索引擎中键入什么。我当然可以用Python自己编写,但是我很懒,而且可能有一个好的程序已经存在?

(我没有使用语言名称来标记我的问题,因为Perl或Ruby中的程序或其他任何方法都可以使用)

3 个答案:

答案 0 :(得分:4)

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

<强>示例:

  1. Linux:/etc/security/limits.conf
  2. FreeBSD:/etc/login.conf
  3. CGI脚本通常可以在自己的用户ID下运行,例如对Apache使用mod_suid

答案 1 :(得分:1)

这可能更符合您的要求:

http://devel.ringlet.net/sysutils/timelimit/

答案 2 :(得分:0)

大多数类似watchdig的程序或库只是试图查看给定进程是否正在运行,所以我说你最好自己编写自己的程序,使用提供进程信息的现有库。