linux进程监控与自动重启的简单实现方法
目的:
linux下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能。
实现原理:
由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重启并写入日志。
crontab修改
#crontab-e */5****/mnt/bindmonitor.sh
/mnt/bindmonitor.sh的实现
#!/bin/sh host_dir=`echo~`#当前用户根目录 proc_name="/home/wkubuntu/named/sbin/named"#进程名 file_name="/mnt/bindmonitor.log"#日志文件 pid=0 proc_num()#计算进程数 { num=`ps-ef|grep$proc_name|grep-vgrep|wc-l` return$num } proc_id()#进程号 { pid=`ps-ef|grep$proc_name|grep-vgrep|awk'{print$2}'` } proc_num number=$? if[$number-eq0]#判断进程是否存在 then /home/wkubuntu/named/sbin/named-c/home/wkubuntu/named/etc/named.conf-n1& #重启进程的命令,请相应修改 proc_id#获取新进程号 echo${pid},`date`>>$file_name#将新进程号和重启时间记录 fi
删除进程测试
a.#killall-15named
b.5分钟后,cat/mnt/bindmonitor.log看看有无最新的记录,进程号与#ps-ef|grepnamed进程号对应。