位置:- 正文

Linux下使用Shell脚本实现进程监控(linux shell)

编辑:rootadmin
Linux下使用Shell脚本实现进程监控

推荐整理分享Linux下使用Shell脚本实现进程监控(linux shell),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux shell怎么用,linux怎么用shell,linux怎么使用shell,linux怎么使用shell,linux怎么使用shell,shell linux命令详解,linux如何使用shell,shell linux命令详解,内容如对您有帮助,希望把文章链接给更多的朋友!

本文介绍一种在Linux系统下为实现某些关键进程状态的实时监控而使用shell脚本的编写方法。在这里主要通过监控某些进程是否退出作为判断依据,如果某个进程退出了,则进行对应的恢复处理,如重新拉起相关的进程等。

下面介绍该脚本的实现流程。

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

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

测试验证

Linux下使用Shell脚本实现进程监控(linux shell)

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

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

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

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

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

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

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

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

至此,该脚本的功能已被验证完毕。

结语:在 Linux 平台下,shell 脚本监控是一个非常简单、方便的工具,它可以有效的对服务器、进程进行监控,对系统开发以及进程维护人员非常有帮助。

本文链接地址:https://www.jiuchutong.com/zhishi/299020.html 转载请保留说明!
下一篇链接:https://www.jiuchutong.com/zhishi/299021.html
免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络