重新登陆终端,后台运行脚本无输出问题定位

测试脚本mytest.sh

#!/bin/bash
localtime=`date "+%Y-%m-%d_%H:%M:%S"`
logfile=logs/${localtime}.txt
PID=$(ps aux| grep node_exporter | grep -v 'grep' | awk '{print $2}')

while [ "PID" != "" ]
do
        cpuinfo=$(top -n 1 -b -d 1 | grep 'node_exporter'|grep -v grep| awk '{print $9,$10,$(NF-1)}')
        echo "PID=$PID;localtime=$localtime;cpuinfo=$cpuinfo" >> $logfile
        sleep 1
done

后台运行脚本的命令

setsid sh mytest.sh

查看日志
在这里插入图片描述

退出终端再次查看日志
在这里插入图片描述
可以看到日志还是在增加,脚本还是在运行的

最后添加全部打印发现重新登陆后进程名被截断,导致grep匹配为空
在这里插入图片描述

最后修改为用PID匹配

#!/bin/bash
localtime=`date "+%Y-%m-%d_%H:%M:%S"`
logfile=logs/${localtime}.txt
PID=$(ps aux| grep node_exporter | grep -v 'grep' | awk '{print $2}')

while [ "PID" != "" ]
do
        cpuinfo=$(top -n 1 -b -d 1 -p $PID | grep $PID |grep -v grep| awk '{print $9,$10,$(NF-1)}')
        echo "cpuinfo=$cpuinfo;$localtime" >> $logfile
        sleep 1
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值