加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Shell Programming(二)——编写守护进程脚本

发布时间:2020-12-15 16:57:03 所属栏目:安全 来源:网络整理
导读:Shell Programming(二)——编写守护进程脚本 概述 ? 在Linux开发中,常遇到需要编写守护进程程序的场景,这时候视情况而定,能使用Shell Script编写那自然就方便很多了。这里就来编写一个守护进程脚本,以作参考。 获取需要守护的进程pid ? 获取进程信息常用

Shell Programming(二)——编写守护进程脚本

概述

? 在Linux开发中,常遇到需要编写守护进程程序的场景,这时候视情况而定,能使用Shell Script编写那自然就方便很多了。这里就来编写一个守护进程脚本,以作参考。

获取需要守护的进程pid

? 获取进程信息常用ps指令进行查询,比较常用的是-ef选项,获取所有进程信息则可以这样写:

ps -ef

? 有了上面这步,我们可以得到大量的进程信息,此时就需要使用上一篇blog中提到的管道结合grep进行文本查找了,这里需要注意,我们需要先过滤掉grep相关的进程信息,因为在这里使用了grep,使用-v选项则可以过滤相关信息,合起来就可以这样写:

ps -ef | grep -v "grep" | grep program.sh  # 查找所需进程相关信息

? 到了这里,已经完成了大半了,我们可以将上面的shell放到Terminal里试试,可以看到,结果并不是pid,而是完整的该进程信息,我们需要截取其中的pid。这里就可以使用awk来进行截取了,awk将输入的文本,默认以空格为分隔符,分割出多个部分,ps使用-ef选项后,pid在第二个位置,所以最后的shell可以这样写:

ps -ef | grep -v "grep" | grep program.sh | awk '{print $2}'  # 获取进程pid

编写守护进程脚本

? 有了上面的知识,就可以简单写一个守护进程脚本了。

#!/bin/bash 
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:./ 

pid="" 
while true; do 
    pid="`ps gaux | grep -v "grep" | grep "program.sh" | awk '{print $2}'`" 
    if [ "${pid}" != "" ]; then 
        echo "YES"  # 仅是示意,主要的功能可以写在这里 
    fi 
done

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读