Linux下自动监控进程运行状态

背景

假设有一个服务需要长期运行,但可能会由于某种原因导致服务意外停止,不能及时发现,某天来到公司后发现出问题了才意识到服务挂了。此时再去手动重启服务可能已经造成很大损失了,那有没有办法可以自动监控服务运行状态,发现服务停止了自动拉起呢?如果你对Linux的定时任务crontab有所了解的话,很容易实现。如果还不了解crontab,请先阅读Linux定时任务之crontab一文。

应用举例

1、使用crontab+脚本监控服务

注意,crontab最小只支持分钟级的监控,如果需要秒级的监控频率,请参考方法2。
编写监控脚本:

#!/usr/bin/bash

log="/home/scripts/check.log"
pid=0
process_num=0
cpu_usage=0
mem_usage=0
# 要监控的服务名称
service_name="java"

# 日志文件不存在,就先创建
if [[ ! -e ${log} ]]; then
    touch ${log}
fi

function info()
{
   
    echo "[`date +'%F %T'` - INFO] - $1" >> ${log}
}

function warn()
{
   
    echo "[`date +'%F %T'` - WARN] - $1" >> ${log}
}

function error()
{
   
    echo "[`date +'%F %T'` - ERROR] - $1" >> ${log}
}

export -f info
export -f warn
export -f error

# 获取进程id
function proc_pid()
{
   
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值