美文网首页Linux
用shell写一个守护进程脚本

用shell写一个守护进程脚本

作者: 我一直都在 | 来源:发表于2021-06-25 16:43 被阅读0次

    使用shell脚本写一个守护进程,监听3003端口,是否有被使用,若没有,则开启

    #!/bin/sh
    cmd=$1
    port=3003
    
    if [ -n "$cmd" ]
    then
       # 守护进程[ nohup sh run.sh 1 & ]
        while true
        do
            sleep 3;
            
            # 根据端口号查询对应的pid
            pid=$(netstat -nlp|grep :$port|awk '{print $7}'|awk -F"/" '{ print $1 }')
    
            # 如果pid不存在,则启动进程
            if [ ! -n  "$pid"  ];then
                # echo "开启npm run start"
                nohup npm run start > /var/log/web/user.log 2>&1 & continue
            fi
            # echo '进程守护中......'
        done
    else
        # 重启进程[ sh run.sh]
        # 根据端口号查询对应的pid
        pid=$(netstat -nlp|grep :$port|awk '{print $7}'|awk -F"/" '{ print $1 }')
    
        #杀掉对应的进程,如果pid不存在,则不执行
        if [  -n  "$pid"  ];then
            kill  -9  $pid
            echo "杀掉已有进程ID: ${pid}"
            echo "重新执行npm run start..."
            nohup npm run start > /var/log/web/user.log 2>&1 & exit
        else
            echo "开启npm run start"
            nohup npm run start > /var/log/web/user.log 2>&1 & exit
        fi
    fi
    
    
    

    相关文章

      网友评论

        本文标题:用shell写一个守护进程脚本

        本文链接:https://www.haomeiwen.com/subject/lmdwyltx.html