用shell写一个守护进程脚本

使用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


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容