Shell脚本实例(一) 监控一个程序的运行情况

本文介绍如何用Shell脚本监控一个程序的运行状态。通过检查进程信息判断程序是否运行,若未运行则自动启动。脚本实现采用死循环进行持续监控,并详细解释了脚本的工作原理。

一、问题描述:

        监控指定程序是否运行,如果程序没有运行,那么启动程序。


二、解决思路:

        <1>、我们判断一个程序是否运行,可以通过查看该程序的进程信息来判断。

                  例: 判断程序 01FirstScript.sh 是否在运行

                  命令:ps -ef  |  grep  01FirstScript.sh | grep  -v  grep

                  结果分析: 如果命令执行之后有输出,即输出进程信息。则说明程序正在运行

                                     如果执行之后没有输出,则说明程序没有运行

        <2>、如何监控指定的程序?

                  我们可以将指定程序的名字作为监控程序的参数传递进去,在内部实现时,通过死循环来不断监控

        <3>、如果程序未运行,如何启动程序?

                  在判断程序为运行时,如果指定程序名是监控程序的第一个参数。可以通过下面命令启动指定程序

                  sh  $1


三、脚本代码实现:


#!/bin/bash

#进程监控脚本
#功能需求: 监控程序是否运行,如果程序没有运行,那么启动程序。


while [ true ]
do

	pro=$(ps -ef | grep "$1" | grep -v grep | grep -v "$0")
	#过滤出目标进程信息,如果pro为空串说明目标进程未运行
        #反向过滤掉grep进程 和 本进程信息, 因为这两个进程信息中包含目标进程的名字

	if [ -z "$pro" ]
	then 
   		  echo "程序未启动,重新启动程序"
	          sh $1    #重新启动指定程序
	else
   		  echo "程序正在运行..."
	fi
	
	sleep 0.5

done


四、运行结果截图:
六、程序运行过程说明:

     <1>、一开始指定程序并未运行
     <2>、然后监控进程检测指定程序未运行,随即启动指定程序
     <3>、指定程序开始运行
     <4>、在中途使用kill命令终止指定程序进程
     <5>、监控进程再次检测到指定程序未运行,随即启动指定程序
     <6>、指定程序开始运行





评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值