linux shell 写的守护程序

主程序 在主业务中或者循环中特定的地方循环写入 当前unix时间戳.到文件/var/log/znljx_dog.msg 中, 覆盖写入只保留一行.

守护程序则 循环读取 /var/log/znljx_dog.msg 文件中的时间戳. 每15秒读取一次. 如果发现 文件中的时间戳已经20秒未更新了, 那么就开启新窗口启动主程序.

#! /bin/sh

#开机的时候先暂停60秒, 等主程序正式启动之后再开始循环监控
sleep 60

while true
do
   logtime=$(cat /var/log/znljx_dog.msg)
   #let logtime1=${{logtime}}
   let logtime1=$((logtime+1))
   if(($logtime1 < 100000)); then 
      echo "error time ${logtime}..."
      continue;
   fi 
   let nowt=$(date +%s)
   let ww=$nowt-$logtime1
   echo $ww
   if(($ww  < 20)); then
      echo "runing..."
   else
       echo "program is stop restart."
       #bash  ./start.sh & # 这里直接执行 , 会阻塞住住程序.
       #pkill python
       #下面的 qterminal 是 另外开一个窗口执行./start.sh,不同的linux系统, 可能qterminal 不同 
       qterminal -w "/home/firefly/Desktop/www/board_system" -e "sudo bash ./start.sh" &
   fi
   
   sleep 4
done
exit(0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值