windows下的程序崩溃自启动可以这样处理
不想增加监视程序的话,可以程序中做如下的处理:
1:使用SetUnhandledExceptionFilter捕获程序崩溃,并在崩溃处理函数中,调用createprocess ,然后退出程序
2:处理程序的退出事件,在退出事件的createprocess启动
如果增加一个监视程序的话,可以做如下处理:
1:程序起来的时候CreateMutex创建一个命名mutex,获取此mutex
2:SetUnhandledExceptionFilter捕获程序崩溃,发生异常时直接退出
监视程序做如下处理:
openmutex,等待mutex获取,获取成功,释放mutex,然后启动应用程序、
linux下可以使用脚本
#!/bin/sh
date=`date +%Y-%m-%d [%T]`
tomcat_one=`ps -ef --cols 200 |grep Tomcat_one |awk '{if($3==1)print $3}'`
#tomcat_one
if [ "$tomcat_one" != 1 ]
then
/sbin/service catalina_one.sh start //重启
echo -e "$date: RESTART" >> /root/logs/tom_one.log
else
echo -e "$date: OK" >> /root/logs/tom_one.log
fi
crontab中加入任务:
#monitor tomcat
*/30 * * * * sh /root/logs/monitor.sh
* * 1 * * cat /root/logs/tom_two.log >> /root/logs/tom_two.log.bak ; rm
/root/logs/tom_two.log