Rate this post
Если вам необходимо переодически проверять запущен ли процес на сервере Linux, есть простой способ сделать это — повесить данных скрипт в cron, 
на врем которое вам необходимо. Вот сам скрипт, естественно необходимо помнять значенияю:
#!/bin/bash
# Name : service.chk 
 
## Change as per your distro 
_pgrep=»/usr/bin/pgrep»
_mail=»/usr/bin/mail»
 
## Add binary list here
_chklist=»/usr/bin/php-cgi /usr/sbin/nginx /usr/sbin/lighttpd /usr/sbin/mysqld /usr/sbin/apache2 /usr/sbin/named /usr/sbin/pgsqld»
 
## yes | no
_sendemail=»no»
 
## Add your email id
 
## Do not change below
_failed=»false»
_service=»Service:»
 
_running() {
local p=»${1##*/}»
local s=»true»
$_pgrep «${p}» >/dev/null || { s=»false»; _failed=»true»; _service=»${_service} $1,»; }
[[ «$s» == «true» ]] && echo «$1 running» || { echo -n «$1 not running»; [[ ! -f «$1″ ]] && echo » [ $1 not found ]» || echo ; }
}
 
## header
echo «Service status on ${HOSTNAME} @ $(date)»
echo «——————————————————«
 
## Check if your service is running or not 
for s in $_chklist
do
_running «$s»
done
 
## Send a quick email update (good for cron jobs) ##
[[ «$_failed» == «true» && «$_sendemail» == «yes» ]] && { _mess=»$_service failed on $HOSTNAME @ $(date)»; 
                                      $_mail -s \’Service not found\’ «$_email» < «${_mess}»;
                                                   }
Есть проблемы с мониторингом и отказоустойчивостью сервера ? Обращайтесь — [email protected]