脚本监控2个进程有进程死掉重启进程

本文介绍了一个使用Shell脚本来持续监控两个特定进程(process1和process2)运行状态的例子。该脚本会检查这两个进程是否正在运行,并根据其状态进行重启操作。如果发现某个进程未运行,则启动相应的进程,并记录启动日期到指定的日志文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/sh
echo "Current DIR is " $PWD
while [ 1 ]
do
  serverpid=`ps -ef|grep process1|grep -v grep|awk '{print $2}'`
  serverpid2=`ps -ef|grep process2|grep -v grep|awk '{print $2}'`
  if [ "$serverpid" ] && [ "$serverpid2" ]
  then
    echo "process1 is running,pid is " $serverpid
        echo "process2 is running,pid is " $serverpid2
    #kill -9 $serverpid 
  elif [ "$serverpid" ]
  then
    echo "process1 is running ,pid is ..." $serverpid
        echo "process2 is down, now starting...."
    dt=`date +%F`
    nohup /data/website/process2 2>>/data/socket/$dt"_pa_error.log" 1>>/data/socket/$dt"_pa_access.log" &
  elif [ "$serverpid2" ]
  then
    echo "process2 is running,pid is...." $serverpid2
        echo "process1 is down, now starting......"
        dt=`date +%F`
    nohup /data/website/process1 2>>/data/socket/$dt"_ad_error.log" 1>>/data/socket/$dt"_ad_access.log" &
  else
    echo "process1 is down ,now starting ..." 
        echo "process2 is down, now starting...."
    dt=`date +%F`
    nohup /data/website/process2 2>>/data/socket/$dt"_pa_error.log" 1>>/data/socket/$dt"_pa_access.log" &
        nohup /data/website/process1 2>>/data/socket/$dt"_ad_error.log" 1>>/data/socket/$dt"_ad_access.log" &
  fi

  sleep 5
done

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值