求一个linux下线程保护的批处理代码

y63964632 2011-09-06 09:44:54
自己写了个jar程序,希望定时检查是否正常运行.

现在用kill 1000就可以杀掉...

怎么能做到和tomcat一样 简单的kill不掉呢?谢谢~

分不够再开贴~
...全文
104 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
modicum_lf 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zmlovelx 的回复:]
做成一个守护进程.
[/Quote]

++


念茜 2011-09-07
  • 打赏
  • 举报
回复
父进程守护子进程
fork后父进程
while(1){
wait();等待子进程
如果有以外发生继续等
如果子进程结束了就在fork一个
}
y63964632 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wangtingguang 的回复:]
用父进程做守护进程,监控子进程的状态。
子进程死掉了,再clone一个。

或者做个脚本, 定时检测一下进程数,ps -ef |grep -cv ,进程数减少了,再去启动进程。
[/Quote]

#!/bin/bash
pnum_server=`ps -wef|grep test |grep -v grep |wc -l`
if test $pnum_server -lt 1
then
kill test
sleep 2s
java -jar test.jar
fi

这么些脚本检测test.jar可以么?

如果可以,需要把这个脚本放哪里呢? 谢谢~
y63964632 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zmlovelx 的回复:]
做成一个守护进程.
[/Quote]

能否给写简单的代码?

不怎么懂这个系统..谢谢~
braveyly 2011-09-07
  • 打赏
  • 举报
回复
上面的讨论涉及两个不同的需求:

(1)让进程无法kill -9 ( LZ的需求 )
(2)让进程永不退出,即使退出了,也可以自动重启

第一个需求,解决的关键点,即让进程由init托管,即让其父进程为init进程,实现方法有很多种,例如将进程设置成为精灵进程(守护进程),或者是fork两次等等

第二个需求,需要借助于另外一个进程(包括crontab shell脚本进程)来实时监控进程的状态,当进程退出后,能够重新启动。方法也有很多种,一般是查看进程信息,或者是采用IPC来进行keepalive,一旦dead,则重启。更多进程间监控思路可以参考:http://www.chinaunix.net/jh/23/136383.html


wangtingguang 2011-09-06
  • 打赏
  • 举报
回复
用父进程做守护进程,监控子进程的状态。
子进程死掉了,再clone一个。

或者做个脚本, 定时检测一下进程数,ps -ef |grep -cv ,进程数减少了,再去启动进程。
帅得不敢出门 2011-09-06
  • 打赏
  • 举报
回复
做成一个守护进程.

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧