zoukankan      html  css  js  c++  java
  • shell:监控进程运行状态并自动重启进程

    #!/bin/sh
    
    MAXRSTCOUNT=5;
    PROCTOGO=/mnt/hgfs/code/test/show
    
    #count is the counter of test started times
    count=0
    
    sys_reboot()
    {
        echo "system is going to reboot";
        reboot;
    }
    
    main_loop()
    {
        while :
        do
        #########################################
        ProStillRunning=$(ps -aux |grep "${PROCTOGO}" |grep -v "grep")
        if [ -z "$ProStillRunning" ]; then
            #start test
            chmod +x ${PROCTOGO}
            ${PROCTOGO}
        fi
    
        #the running times counter
        let count=count+1
        echo "test running times is $count"
    
        #wait for test stoping...
        sleep 3
    
        #########################################
        done
    }
    
    main_loop;

    实例:

    cat etc/init.d/monitor-app.sh

    #!/bin/bash
    sleep 40
    
    while [ 1 ]
    do
            for procname in app
            do
                    pgrep $procname > /dev/null
                    if [ 0 -ne $? ]
                    then
                            /etc/init.d/autoapp start &   ##autoapp可以是脚本,app等
                    fi
            done
            sleep 30
    done

    一个app启动脚本:

    cat etc/init.d/automhclient

    #! /bin/sh
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    
    case "$1" in
        start)
            echo -n "Starting automhclient: "
                    export DISPLAY=:0
                    cd /usr/share/qt5/app/mhclient
                    ./automhclient &
                    echo
                    exit 0
            ;;
        stop)
            echo -n "Shutting down automhclient: "
            killproc automhclient
            echo
            ;;
        restart)
            echo -n "Restarting automhclient: "
            $0 stop
            $0 start
            echo
            ;;
        *)
            echo "Usage: $0 start|stop" >&2
            exit 3
            ;;
    esac
  • 相关阅读:
    理解Device Tree Usage
    Unhandled Exception in EL3
    python的multitask模块安装
    利用python制作在线视频播放器遇到的一些问题
    设置linux代理完成apt-get
    Eric6安装问题解决
    关于代码重构的比喻
    AAC的RTP封装中的AU头分析
    CORE DUMP生成调试
    开源库SRT编译指南
  • 原文地址:https://www.cnblogs.com/mylinux/p/5555926.html
Copyright © 2011-2022 走看看