当前位置: 技术问答>linux和unix
求一个linux下线程保护的批处理代码
来源: 互联网 发布时间:2016-12-29
本文导语: 自己写了个jar程序,希望定时检查是否正常运行. 现在用kill 1000就可以杀掉... 怎么能做到和tomcat一样 简单的kill不掉呢?谢谢~ 分不够再开贴~ | 上面的讨论涉及两个不同的需求: (1)让进...
自己写了个jar程序,希望定时检查是否正常运行.
现在用kill 1000就可以杀掉...
怎么能做到和tomcat一样 简单的kill不掉呢?谢谢~
分不够再开贴~
现在用kill 1000就可以杀掉...
怎么能做到和tomcat一样 简单的kill不掉呢?谢谢~
分不够再开贴~
|
上面的讨论涉及两个不同的需求:
(1)让进程无法kill -9 ( LZ的需求 )
(2)让进程永不退出,即使退出了,也可以自动重启
第一个需求,解决的关键点,即让进程由init托管,即让其父进程为init进程,实现方法有很多种,例如将进程设置成为精灵进程(守护进程),或者是fork两次等等
第二个需求,需要借助于另外一个进程(包括crontab shell脚本进程)来实时监控进程的状态,当进程退出后,能够重新启动。方法也有很多种,一般是查看进程信息,或者是采用IPC来进行keepalive,一旦dead,则重启。更多进程间监控思路可以参考:http://www.chinaunix.net/jh/23/136383.html
(1)让进程无法kill -9 ( LZ的需求 )
(2)让进程永不退出,即使退出了,也可以自动重启
第一个需求,解决的关键点,即让进程由init托管,即让其父进程为init进程,实现方法有很多种,例如将进程设置成为精灵进程(守护进程),或者是fork两次等等
第二个需求,需要借助于另外一个进程(包括crontab shell脚本进程)来实时监控进程的状态,当进程退出后,能够重新启动。方法也有很多种,一般是查看进程信息,或者是采用IPC来进行keepalive,一旦dead,则重启。更多进程间监控思路可以参考:http://www.chinaunix.net/jh/23/136383.html
|
做成一个守护进程.
|
用父进程做守护进程,监控子进程的状态。
子进程死掉了,再clone一个。
或者做个脚本, 定时检测一下进程数,ps -ef |grep -cv ,进程数减少了,再去启动进程。
子进程死掉了,再clone一个。
或者做个脚本, 定时检测一下进程数,ps -ef |grep -cv ,进程数减少了,再去启动进程。
|
父进程守护子进程
fork后父进程
while(1){
wait();等待子进程
如果有以外发生继续等
如果子进程结束了就在fork一个
}
fork后父进程
while(1){
wait();等待子进程
如果有以外发生继续等
如果子进程结束了就在fork一个
}
|
++