接外包,有相关需求的可以联系我:Telegram | Email

Linux守护进程脚本(shell)

该文章创建(更新)于04/23/2020,请注意文章的时效性!

缘由(废话)

自己最近在服务器上面搭建了一个jupyter lab,但有好几次跑东西把服务器挤爆了,什么数据库等等全部下线,连ssh也无法连接,只能重启。但你知道重启这操作也够骚的!就尝试弄一个守护进程脚本,去看网上有关shell的知识,但感觉啥也没学到,有点懵逼。只能找本pdf系统的看了一下,发现自己有好多知识都欠缺。但想想自己平时没用到,自己也就没怎么注意。谁叫自己喜欢边做边学呢!

CODE

自己这次卡在了如何通过进程名称查杀所有重复进程以及计数来判断!

  • 自己酌情按实际需求去更改,最怕碰到那种直接拿去就开始运行的傻逼!也不怕有人写了一个rm / -rf,让你直接崩溃!
#!/bin/sh
PRO_NAME=bot # 进程名称

# 查杀所有进程方法:如查杀jmeter
# ps -ef|grep jmeter |grep -v grep|awk '{print $2}'|xargs kill -9
# ps -ef|grep jmeter |grep -v grep|cut -c 9-15|xargs kill -9

cd /home/lab/Telegram

while true ; do
#     T=$(date + %Y-%m-%d %H:%M:%S)
    T=$(date)
    #用ps获取$PRO_NAME进程数量
    NUM=`ps aux | grep $PRO_NAME | grep -v grep |wc -l`
#     echo "$T : $NUM"

    #少于1,重启进程
    if [ "${NUM}" -lt "1" ];then
        echo "$T : ${PRO_NAME} hasn't started !"
        python3 bot.py >> bot.log 2>&1 &
    #大于1,杀掉所有进程,重启
    elif [ "${NUM}" -gt "1" ];then
        echo "$T : more than 1 ${PRO_NAME},killall ${PRO_NAME}"
        ps -ef|grep $PRO_NAME |grep -v grep|cut -c 9-15|xargs kill -9
    fi
    sleep 5s
done

exit 0

要不赞赏一下?

微信
支付宝
PayPal
Bitcoin

版权声明 | Copyright

除非特别说明,本博客所有作品均采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。转载请注明转自-
https://www.emperinter.info/2020/04/23/linux-protected-process-in-shell/


要不聊聊?

我相信你准备留下的内容是经过思考的!【勾选防爬虫,未勾选无法留言】

*

*



微信公众号

优惠码

阿里云国际版20美元
Vultr10美元
搬瓦工 | Bandwagon应该有折扣吧?
域名 | namesiloemperinter(1美元)