免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: lsupper
打印 上一主题 下一主题

请教如何写一个shell监控我的一个进程状态,死了重启 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-06-22 18:03 |只看该作者

回复 #10 kwokcn 的帖子

恩,是的,可以改下

论坛徽章:
0
12 [报告]
发表于 2009-06-22 19:59 |只看该作者

回复 #2 南无小和尚 的帖子

谢谢了,根据你的意见写了个~~~还想问下,如何写个重启shell,就是重启./a.out

论坛徽章:
0
13 [报告]
发表于 2009-06-23 11:00 |只看该作者
楼主积分比我多:wink:
不过在这个区的帖子比较少,你直接再次执行a.out就行啊.

[ 本帖最后由 Aruceid 于 2009-6-23 11:01 编辑 ]

论坛徽章:
0
14 [报告]
发表于 2009-06-24 10:03 |只看该作者
#/bin/sh
while true; do
                count=`ps -fe |grep "main" | grep -v "grep"`
                if [ "$?" != "0" ]; then
    echo ">>>>no main,run it"
    else
    echo ">>>>main is running"
    fi
    sleep 2
done
---------------------------------分割线----------------------------------------------
按照2楼的方法,我的板子里没有wc,也没有crontab

我在终端上执行这个脚本./test,能正确检测,
但是我执行./test &,不管main有没有,都是输出no main,run it

---------------------------貌似解决了------------------------------------
在done后面加 &

[ 本帖最后由 marco_hxj 于 2009-6-24 10:18 编辑 ]

论坛徽章:
0
15 [报告]
发表于 2009-06-24 11:24 |只看该作者

回复 #13 Aruceid 的帖子

恩,我一般在C/C++那 呵呵~~~shell写的少,用的时候才~~~~

论坛徽章:
0
16 [报告]
发表于 2009-06-24 11:25 |只看该作者

回复 #14 marco_hxj 的帖子

在屁股后面加& 啥子作用~~~ 我不是很理解~~~

论坛徽章:
0
17 [报告]
发表于 2009-06-24 16:59 |只看该作者

回复 #16 lsupper 的帖子

屁股加那个&, 就做到后台了

论坛徽章:
0
18 [报告]
发表于 2010-12-20 16:45 |只看该作者
#!/bin/bash
CheckProcess()
{
        if [ "$1" = ""];
        then
                return 1
        fi

    PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l`
    if [ $PROCESS_NUM -eq 1 ];
    then
        return 0
    else
        return 1
    fi   
}

while [ 1 ] ; do
    CheckProcess "./a.out"
    CheckQQ_RET=$?
    if [ $CheckQQ_RET -eq 1 ];
    then
     killall -9 a.out
     exec ./a.out &
    fi
    sleep 1
done
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP