|
|
|
|
 redhat的inittab文件 - ywfscu [ 2006-09-21 00:27 | 322 byte(s)]
 Re: redhat的inittab文件 - r00t [ 2006-09-25 23:49 | 277 byte(s)]
 Re: redhat的inittab文件 - ElTopo [ 2006-09-21 04:13 | 456 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
有一不稳定的守护程序,由于有时要异常退出,为了能让系统自动重新启动该程序。
我在inittab文件里用respawn指定了下面一行
::respawn:my_program
结果系统启动过后,发现一共出现了10个my_program进程。
而且我把所有的都kill过后,系统也没有重新启动该程序。
这是怎么回事?
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
1、my_program 的设计是怎样的,如果是运行后立即把自己放到后台,前台退出(许多 daemon 都这样写的),就会导致 init 误以为 my_program 已经退出而重复启动;
2、如果出现了1的情况,若干次重复启动后 init 会停止一段时间重新启动 my_program,以避免有问题的程序占用过多系统资源(快速重复启动)。
3、对于1的情况,最好写一个脚本 my_program.sh,inittab 使用 my_program.sh,在 my_program 中启动 my_program,然后用 pidof 之类检查 my_program 是否还在运行。
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
不明白您为什么要写inittab,而且那么写也没有什么道理啊。
如果是我的话,我会写一个crontab,定时运行,比如5秒一次,这个时间可以根据您的系统的情况进行设置,脚本负责检查相应的进城是否存在,可以使用ps,如果进城不存在了,则重新启动,如果进行已经存在,则不重新启动。
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
|