• 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
  • 相关阅读:
    嵌套矩形
    Multiplication Puzzle
    animate.css在vue项目中的使用
    服务器相关知识
    webpack-cli安装和插件的安装
    新买阿里云linux服务器如何设置账号密码xshell远程登陆
    主流请求库axios库的使用
    什么是回调函数
    js------match() 方法
    cookie
  • 原文地址:https://www.cnblogs.com/mylinux/p/5555926.html
Copyright © 2020-2023  润新知