最近项目经常性出现程序崩溃现象,非常影响项目的正常运营以及我的睡眠,于是就想在系统做一个看门狗来实现程序崩溃后的自动重启。
系统本身就是支持看门狗的,但是内核在编译时并未打开并进行相关设置,导致现在的看门狗/dev/watchdog 形同虚设,重新编译内核又觉得太麻烦(出差现场条件恶略),于是想到了使用shell来模拟一个,用来检测我的进程是否存在,具体实现如下
#!/bin/sh
while true
do
process=`ps aux | grep slxcharger | grep -v grep`;
if [ "$process" == "" ]; then
sleep 30;
echo "process 不存在,开始执行";
reboot;
else
echo "process exsits";
sleep 30;
fi
done
把这个脚本设置开机自启动就可以了(/etc/init.d 目录下),系统开机后就会自动检测进程slxcharger是否存在,如果不存在就自行重启,反正控制器就这个一个项目在跑,重启就行了
等出差回去,再把内核重新搞一下,把系统看门狗用上。