Программа для уничтожения запущенных беглых программ - PullRequest
2 голосов
/ 21 декабря 2008

Я управляю системами Unix, где иногда такие программы, как CGI-скрипты, работают вечно, иногда потребляя много процессорного времени и тратя ресурсы.

Мне нужна программа (обычно вызывается из cron), которая может уничтожить эти побеги, основываясь на следующих критериях (в сочетании с AND и OR):

  • Имя (заданное регулярным выражением)
  • процессорное время
  • истекшее время (для программ, заблокированных на вводе / выводе)

Я действительно не знаю, что набирать в поисковике для такого рода программ. Я, конечно, мог бы написать это сам на Python, но я ленив, и, может быть, уже есть хорошая программа?

(я не помечал свой вопрос именем языка, так как программа на Perl или Ruby или что-то еще работало бы)

Ответы [ 3 ]

4 голосов
/ 21 декабря 2008

Попробуйте вместо этого использовать квоты на уровне системы. Большинство систем позволяют устанавливать ограничение по времени процессора для разных пользователей.

Примеры:

  1. Linux: /etc/security/limits.conf
  2. FreeBSD: /etc/login.conf

CGI-сценарии обычно можно запускать под собственным идентификатором пользователя, например, используя mod_suid для Apache.

1 голос
/ 30 сентября 2009

Это может быть что-то похожее на то, что вы искали:

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

0 голосов
/ 21 декабря 2008

Большинство подобных сторожевым программам или библиотекам просто пытаются увидеть, работает ли данный процесс, поэтому я бы сказал, что вам лучше написать свой собственный, используя существующие библиотеки, которые выдают информацию о процессе.

...