请教dearvoid版主: 如何自动检测进程退出并重启进程

请教dearvoid版主: 如何自动检测进程退出并重启进程

想写一个监测5个程序运行的软件,目的是监测到一个程序死掉后,可以自动重新启动的程序,

#!/bin/sh

while true
do
  pidof 进程名0 || 启动程序0 &
pidof 进程名1 || 启动程序1 &
pidof 进程名2 || 启动程序2 &
pidof 进程名3 || 启动程序3 &
pidof 进程名4 || 启动程序4 &
  sleep 5
done


这样些有问题吗?

#!/bin/sh

while true
do
  pidof 进程名0 || 启动程序0 &
  sleep 5
done


这样监测一个程序没有问题,如果监测5个程序,如上面我写的,就会出现一个程序死掉后,会不停的重新启动已死掉的程序,请问应该如何去处理?

谢谢

      
没看明白, 为什么「会不停的重新启动已死掉的程序」?      
假如程序4被监测程序发现死掉了,监测程序就会不停的启动程序4,进入死循环      
引用:
原帖由 sivon 于 2009-1-6 19:14 发表
假如程序4被监测程序发现死掉了,监测程序就会不停的启动程序4,进入死循环
等「程序4」起来之后,「pidof 进程名4」就能执行成功, 应该不会再去执行后面的「启动程序4」了啊, 除非「程序4」一直起不来
--
不知俺分析的对否? (很心虚 )      
意思是我写的这个程序应该是没有问题的是吗?可能我用的时间间隔太短了,只用了5S,启动程序可能要超过这个时间,所以才会出现我说的现象,谢谢dearvoid版主的热情回复      
引用:
原帖由 sivon 于 2009-1-7 10:35 发表
意思是我写的这个程序应该是没有问题的是吗?可能我用的时间间隔太短了,只用了5S,启动程序可能要超过这个时间,所以才会出现我说的现象,谢谢dearvoid版主的热情回复
你给的 script 看上去没有问题似的, 可以自己测试一下. 俺这两天比较忙, 不然我会自己测一下哈
--
以后发贴请使用有意义的主题      
pidof bash
怎么就发现不了这个进程呢?

用 ps -A|grep bash &>/dev/null  && echo "have bash"看看