在实际运维过程中,经常会出现某个程序(如tomcat、perl等)的进程在服务器上无缘无故消失的情况。在这种情况下,我们需要花时间去分析它为什么会消失。二是要配备相关督察人员。我们可以在linux下写一个shell脚本,在crontab中配置。这样,当服务器上没有程序进程时,让shell自动帮我们完成这个操作,将影响业务的风险降到最低。同时,我们可以定期观察crontab中输出的日志,看看是否出现了这种情况,然后有针对性地进行处理,这比问题突然出现时才处理要好得多。外壳内容:如果需要配置多个程序,只需释放底部注释即可。#!/bin/sh#守护脚本,通过grep命令查看进程是否存在,然后重启进程#可以配置多个进程#根据进程名判断进程是否消失(行数为0),红色字母为查询过程关键字,必须唯一iftest`ps-ef|grep'程序名'|grep-vvi|grep-vgrep|wc-l`-eq0then#记录发生的时间,记录丢失的进程名echo`date`echo'程序名丢失。程序正在重启中...!'#重启程序,自己配置cd/home/inm/ueap-mysql/redis-2.6.17src/redis-serverredis.conffi#多进程守护进程(配置方法同上)#iftest`ps-ef|grepINASProcessManager|grep-vvi|grep-vgrep|wc-l`-eq0#then#echo'INASProcessManagerismissing!'#echo'INASProcessManager启动!'#java-jar/jh_app/inas/bin/INASProcessManager.jar>>mng.dumpfi在crontab中配置以上脚本并记录日志:*/3****/bin/sh/home/aiuap/esb/ueap-collect/watch.sh>>/home/aiuap/esb/ueap-collect/w日志文件
