#!/bin/bash
# 文件说明:监控应用程序运行,如已退出则启动应用程序
export LANG=zh_CN.UTF-8
IP=`/sbin/ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
monitor_path=/root/monitor
# 消息通知
declare -a Emaillist
Emaillist[0]=979243615@qq.com
# 服务名
declare -a app_name_list
#服务启动文件
declare -a app_path_list
# 服务1:nginx
app_name_list[0]=nginx
app_path_list[0]='/usr/local/nginx/sbin/nginx'
# 服务2:mongo
app_name_list[1]=mongo
app_path_list[1]='echo > /dev/null'
# 服务3:redis
app_name_list[2]=redis
app_path_list[2]=redis
# 服务4:ns平台
app_name_list[3]=ns-platform-api-server
app_path_list[3]='java -jar /usr/local/ns-platform-api-server-1.0-SNAPSHOT.jar'
# 检测服务
i=0
for app_name in ${app_name_list[*]}
do
Count=`ps -aux | grep $app_name | wc -l`
if [[ $Count -eq 1 ]]; then
${app_path_list[i]} > $monitor_path/service/$app_name.log 2>&1 &
for email in ${Emaillist[*]}
do
#echo "服务器[$IP]: [$app_name]程序运行终止,现已启动该应用,请检查终止原因!" | mutt -s "服务器[$IP][$app_name]运行告警" $email
echo 123 > /root/monitor/ch.log
done
echo "$(date "+%Y-%m-%d %H:%M:%S") [$app_name]服务器程序运行终止,现已启动该应用,请检查终止原因!" >> $monitor_path/monitor.log
fi
let i++
done