shell监控服务进程是否启动

shell脚本规范:https://blog.csdn.net/weixin_38154393/article/details/70738671

docker-compose.yml指docker部署服务文件,按行计算服务名称及使用的端口号位置获取端口号,判断是否在进程中,这种方式不推荐使用,临时抱佛脚的菜鸟编程

#!/bin/bash/
i=3
servicePids=$(docker ps -a|awk '{print $12}'|grep -v 'ago')
rows=$(awk 'END{print NR}' docker-compose.yml)
rows=$((rows))
echo "rows:"$rows
while [ "$i" -le "$rows" ]
do
   echo  "rows:"$rows
   j=$((i+3))
   newName=“”
   serviceName=$(awk  -F ':' 'NR=='"$i"' {print $1}' docker-compose.yml)
   portNum=$(awk  -F ':|"' 'NR=='"$j"' {print $2}' docker-compose.yml)
   echo "portNum:"$portNum
   if [ "$serviceName"  != "" ]
   then
        lastchar=${serviceName:(-1)}
        if [ -z "$(echo $lastchar|sed 's#[0-9]##g')" ]
                then
                newName=${serviceName%?}$portNum
        elif [ "$lastchar" != "" ]
                then
                newName=${serviceName}$portNum
        fi 
        k=0
        for pid in ${servicePids[@])}
        do
                id=${pid:(-4)}
                if [ "$id" == "$portNum" ]
                then   
                        k=1
                fi
        done
        if [ "$k" == 0 -a  "$portNum" != "" ]
        then
        echo $serviceName
        docker-compose -f docker-compose.yml restart $serviceName
        fi
   fi 
   i=$((i+17))
done

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值