文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux下如何使用Shell脚本实现进程监控的流程

2023-07-05 07:01

关注

这篇“Linux下如何使用Shell脚本实现进程监控的流程”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux下如何使用Shell脚本实现进程监控的流程”文章吧。

首先生成一个名为”process_check.sh”的脚本,脚本内容如下:

#!/bin/bash #该函数检查关键进程的状态,最终返回进程的个数。checkprocess(){#       echo "checkprocess...$1"        if [ "$1" = "" ];        then                return 1        fi        process_num=`ps -ef|grep "$1" |grep -v "grep" |wc -l`#       echo "checkprocess num=$process_num"        return $process_num}#进程如有退出,则记录相关的信息,并做相关的处理recordinfo(){#       echo "check $1"        if [ "$1" = "" ];        then                return        fi#打印进程退出的时间        date "+++++++++++++++++++ +%Y-%m-%d %H:%M:%S '$1' exit! +++++++++++++++++++"#重新拉起这个进程        "$1" &        echo "restart $1"} #检查进程的状态check(){        echo "####check $1"        if [ "$1" = "" ];        then                return        fi        checkprocess "$1"        check_result=$?#如果该进程的个数为0,则说明该进程已经退出        if [ $check_result -eq 0 ];        then                recordinfo "$1"#               exit        fi}#循环检测while [ 1 ] ; do        #关键进程列表,多个进程以逗号分隔,这里以两个进程为例子。        process_name="./test1,./test2"        OLD_IFS="$IFS"        IFS=","        arr=($process_name)        IFS="$OLD_IFS"         for s in ${arr[@]}        do          check "$s"        done        sleep 3#       echo "check loop..."done

测试验证

这里写一个简单的测试程序,代码如下:

void main(){        while(1) {                sleep(3);        }}

编译后生成两个名为“test1”,“test2”的可执行文件。

为了方便测试,可以将”process_check.sh”,”test1”,”test2”放置于同一个目录下。

运行”process_check.sh”,如下所示:

Linux下如何使用Shell脚本实现进程监控的流程

从上图可知,”test1”,”test2”刚开始并未被拉起,运行”process_check.sh”之后,检测出”test1”,”test2”不存在,则触发拉起的机制,最终”test1”,”test2”被启动了。

运行过程中kill掉某一个进程,验证”process_check.sh”是否有将该进程拉起。

Linux下如何使用Shell脚本实现进程监控的流程

由下图可知,被kill的进程最终又被拉起了。

Linux下如何使用Shell脚本实现进程监控的流程

以上就是关于“Linux下如何使用Shell脚本实现进程监控的流程”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯