#!/bin/bash# 文件说明:监控应用程序运行,如已退出则启动应用程序export LANG=zh_CN.UTF-8IP=`/sbin/ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`monitor_path=/root/monitor# 消息通知declare -a EmaillistEmaillist[0]=979243615@qq.com# 服务名declare -a app_name_list#服务启动文件declare -a app_path_list# 服务1:nginxapp_name_list[0]=nginxapp_path_list[0]='/usr/local/nginx/sbin/nginx'# 服务2:mongoapp_name_list[1]=mongoapp_path_list[1]='echo > /dev/null'# 服务3:redisapp_name_list[2]=redisapp_path_list[2]=redis# 服务4:ns平台app_name_list[3]=ns-platform-api-serverapp_path_list[3]='java -jar /usr/local/ns-platform-api-server-1.0-SNAPSHOT.jar'# 检测服务i=0for 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