【操作系统】Linux进程管理脚本

简述

最近一直在Linux上搞事情,碰到给小问题。因为项目需要,可能需要维护比较多的进程,每个进程的有无,都回影响整个项目。进程单个管理起来比较麻烦,就写了给脚本用来管理。

Linux定时器

脚本最开始是我什么时候想起来就执行一次的,检测一下哪些进程没开或者崩溃了,哪些进程的情况是怎样怎样的。后来我发现,这样也不是个事儿啊,机器能做的事情,干嘛非要自己做,就用Linux的定时器,定时的去执行这个脚本。

主要命令

编辑Linux定时器命令:

crontab -e

查看Linux定时器的日志:

tail -f /var/log/cron.log

crontab里面具体内容

*/3 * * * * sh  /home/kf_ai_00/text_classify/Manager.sh > /home/kf_ai_00/text_classify/Manager.log 2>&1

这里的意思是,每三分钟这个定时器执行一遍这个Manager.sh脚本,然后把日志以重写的方式输出到Manager.log这个文件中。

进程管理脚本

如下脚本检测进程是否正常开启,如果进程关闭,则开启。

核心源码

#!/bin/bash

#等待时间
sec=1

function sayProcess()
{
 echo "current: $1"
 ps_out=`ps -ef | grep $1 | grep -v 'grep' | grep -v $0`
 result=$(echo $ps_out | grep "$1")

 echo "$1 time: `date +%Y-%m-%d_%T`"
 if [[ "$result" != "" ]];then
    echo "$1 is Running"
    return 0
 else
    echo "$1 not Running"
    echo "$1 will be created"
    return 1
 fi
}

function splitLine()
{
 echo "-----------------------------------------------"
}

function waitTime()
{
 sleep $sec
 splitLine
}

splitLine
splitLine

#...

#检测实体识别
sayProcess "Ner_Model_Server"
key=`echo $?`
if [[ $key == 1 ]];then
  nohup /usr/local/bin/python3 /home/kf_ai_00/Ner_Model_Server.py > Ner_Model_Server.log 2>&1 &
fi
waitTime

#检测SmartBinLog
sayProcess "SmartBinLog"
key=`echo $?`
if [[ $key == 1 ]];then
  nohup /home/kf_ai_00/SmartBinLog > SmartBinLog.log 2>&1 &
fi

#...
splitLine

效果图

此执行情况也做了处理

写给读者的话

依照这种方式,可以检测进程的情况,如果崩溃或者没开,或者怎样怎样都可以自行做处理。这里的代码只粘贴了部分核心内容,已经够普通的需求了。其余不便透露,希望读者们理解。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙振宇

你的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值