Мониторинг зависающих процессов
Мне нужно следить за зависанием процессов на выходе 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. Оба эти инструмента являются утилитами с открытым исходным кодом, которые проверяют процессы и перезапускают их, если они не запущены.
Надеюсь это поможет!