Shell脚本监控Linux某个后台进程,当进程死掉后重新启动服务,以httpd为例
Shell脚本如下:
vim monitor.sh
#!/bin/bash while true # 无限循环
flag=`ps -aux |grep "httpd" |grep -v "grep" |wc -l`
do
if [[ $flag -eq ]] # 判断进程数如果等于0,则启动httpd
then
`systemctl start httpd` # 启动httpd
echo `date` - "Apache restart" >> running.log # 将重启时间写入自定义的日志文件
else
echo "Apache is running..." >> /dev/null
fi
sleep 3s # 延迟3秒后进入下次循环
done
运行脚本:bash monitor.sh &
命令末尾的 & 号,意思是将这个任务放到后台去执行。
那么如何停止脚本运行呢?
(1)首先查找运行脚本的进程PID号:
ps -aux |grep "bash monitor.sh"
(2)终止脚本进程:
kill -9 进程PID号
对脚本做一些说明:
ps -aux | grep # 查找进程
参数:-aux 意思是显示所有包含其他使用者的进程。
ps -aux | grep "process_name"
若只执行这条命令,会导致出现一个 grep 进程,也就是说若只用上面的命令,会永远得到至少一个进程(grep进程),所以还需要用下面的命令,排除 grep 本身这个进程:
grep -v "grep"
最后再用 wc -l 命令统计进程数。
if 判断如果获得的进程数等于0,则证明 httpd 服务没有运行,执行启动命令。
sleep命令可以用来将目前动作延迟一段时间
sleep 1 延迟1秒
sleep 1s 延迟1秒
sleep 1m 延迟1分钟
sleep 1h 延迟1小时
sleep 1d 延迟1天
Shell脚本监控Linux某个后台进程,当进程死掉后重新启动服务,以httpd为例的更多相关文章
- shell脚本监控Linux系统性能指标
2016-11-04 22:41 原作者不详 分类: Linux(7) 在服务器运维过程中,经常需要对服务器的各种资源进行监控, 例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出 ...
- shell 脚本监控linux
[root@dn3 data]# cat monitor.sh #!/bin/bash cpu_idle=$(top -n2|grep 'Cpu'|tail -n 1|awk '{print $8}' ...
- shell脚本监控Linux系统的登录情况
一.登录日志记录 vi /etc/profile 在最后面添加一行: echo "`who`" > /var/log/login.log 二.监控日志文件 #!/bin/ba ...
- 使用Shell脚本对Linux系统和进程资源进行监控
ShellLinux脚本 摘要:Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.本文我们以Bash做为实例总结了使用Shell对系统和进 ...
- 使用 shell 脚本对 Linux 系统和进程资源进行监控
Shell 简介 Shell 语言对于接触 LINUX 的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是 ...
- linux shell脚本监控进程是否存在
用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ...
- Linux简单Shell脚本监控MySQL、Apache Web和磁盘空间
Linux简单Shell脚本监控MySQL.Apache Web和磁盘空间 1. 目的或任务 当MySQL数据库.Apache Web服务器停止运行时,重新启动运行,并发送邮件通知: 当服务器磁盘的空 ...
- 用shell脚本监控进程是否存在 不存在则启动的实例
用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]th ...
- Shell 脚本实现 Linux 系统监控
一.实验介绍 1.1 实验内容 本课程实现 shell 脚本监控系统的各项参数,并可以将脚本加入系统环境中,可以直接在终端里执行.还添加了几个参数,一个脚本可以执行不同的操作. 1.2 知识点 本实验 ...
随机推荐
- 前端与算法 leetcode 36. 有效的数独
目录 # 前端与算法 leetcode 36. 有效的数独 题目描述 概要 提示 解析 算法 传入[['5', '3', '.', '.', '7', '.', '.', '.', '.'],['6' ...
- SSL密钥协商过程分析
一.说明 尽管做过证书生成.双向认证.SSL通信编程等事情,但一直不清楚SSL如何完成密钥交换.看网上的资料则众说纷纭,最近和朋友学习时聊到了这个问题,然后正巧上周处理客户反馈SSL版本过低时领导也想 ...
- spring cloud 客户端负载均衡 - Ribbon
Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,基于Netflix Ribbon实现的,Ribbon不像注册中心.网关那样需要单独部署,它是作为一个工具直接集成到 ...
- mysql密码中有特殊字符&在命令行下登录
在服务器上,通常为了快速登录数据库,我们会使用mysql -hhost -uusername -ppassword db的方式登录数据库,如果密码中没有特殊字符&,会直接进入数据库sql命令行 ...
- jmeter通过BeanShell,实现对接口参数HmacSHA256加密(转)
jmeter通过BeanShell,实现对接口参数HmacSHA256加密2019-04-29 05:10 ps. 最近抓包网站的登陆请求,发现就2个参数,用户名和密码,通过工具去请求这个接口,一直返 ...
- 利用分析洞察力来改进Sitecore内容编辑过程
本文旨在增强内容作者的体验; 利用富有洞察力的数据为编辑过程增添真正的价值. 内容作者的日常生活是忙碌的.从一页跳到另一页,进行修改或创建全新的领域.任务的优先顺序由谁来确定?通常首先那些呼喊最响的人 ...
- 服务器同时安装python2支持的py-faster-rcnn以及python3支持的keras
最近把服务器折腾一下,搞定这两个.
- ubuntu开机自动挂载硬盘
1. 查看硬盘信息 df -h 命令找到目标硬盘(可根据 磁盘分区(路径).分区大小.挂载点 确认/定位 目标) sudo blkid 命令找到目标硬盘的UUID,(关注一下分区的格式化类型,如ex ...
- Docker 运行 MySQL,使用 docker-compose
目录结构 . │ .env │ docker-compose.yml │ └─mysql ├─config │ my.cnf │ └─data mysql 目录下的 data 为数据目录,mysql ...
- java中反射知识点总结
1 package Demo; 2 3 import java.lang.reflect.Constructor; 4 import java.lang.reflect.Field; 5 impo ...