Мониторинг зависающих процессов

Мне нужно следить за зависанием процессов на выходе ps -ef | grem GMC...

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

SUSE Linux Enterprise Server 10 (x86_64)
VERSION = 10
PATCHLEVEL = 1
LSB_VERSION="core-2.0-noarch:core-3.0-noarch:core-2.0-x86_64:core-3.0-x86_64"
Novell Open Enterprise Server 2 (x86_64)
VERSION = 2
BUILD = FCS

1 ответ

Простой скрипт, подобный следующему, делает волшебство:

#!/bin/bash

PROCESS=`ps auxw | grep GMC | grep -v grep`

if [ -z $PROCESS ]; then
  echo "Process GMC not running" | mail -s "Alert" yourmail@address.com
fi

Затем запускайте это каждые 5 минут crontab,

Вы также можете проверить такие инструменты, как daemontools или monit. Оба эти инструмента являются утилитами с открытым исходным кодом, которые проверяют процессы и перезапускают их, если они не запущены.

Надеюсь это поможет!

Другие вопросы по тегам