linux持续检测进程脚本,用于检测进程的shell脚本代码小结
一个简单的shell脚本,用来找出关键的服务是否正在运行,适用于Linux或Unix操作系统。
该脚本还可以使用电子邮件发送通知。
代码:
#!/bin/bash
# Name : service.chk 服务检测脚本
## 根据自己的环境修改
_pgrep="/usr/bin/pgrep"
_mail="/usr/bin/mail"
## 环境变量
_chklist="/usr/bin/php-cgi /usr/sbin/nginx /usr/sbin/lighttpd /usr/sbin/mysqld /usr/sbin/apache2 /usr/sbin/named /usr/sbin/pgsqld"
## yes | no
_sendemail="no"
_email="test@jb51.net"
## 不要修改如下配置
_failed="false"
_service="Service:"
_running() {
local p="${1##*/}"
local s="true"
$_pgrep "${p}" >/dev/null || { s="false"; _failed="true"; _service="${_service} $1,"; }
[[ "$s" == "true" ]] && echo "$1 running" || { echo -n "$1 not running"; [[ ! -f "$1" ]] && echo " [ $1 not found ]" || echo ; }
}
## header
echo "Service status on ${HOSTNAME} @ $(date)"
echo "------------------------------------------------------"
## Check if your service is running or not
for s in $_chklist
do
_running "$s"
done
## Send a quick email update (good for cron jobs) ##
[[ "$_failed" == "true" && "$_sendemail" == "yes" ]] && { _mess="$_service failed on $HOSTNAME @ $(date)";
$_mail -s 'Service not found' "$_email" < "${_mess}";
}
结果:
下面是一些小段代码,大家也可以参考下
脚本一:
#!/bin/sh
program=XXXX #进程名
sn=`ps -ef | grep $program | grep -v grep |awk '{print $2}'` #获得进程端口号
if [ "${sn}" = "" ] #如果为空,表示进程未启动
then
nohup /home/oracle/XXXX & #后台启动进程
echo start ok !
else
echo running
fi
脚本二:
#!/bin/sh
ps -ef |grep ./FileServer > /dev/null 2>&1 #检测进程写入/dev/null
if [ $? -eq 0 ] #0为正常
then
echo logprocess run ok!
else
nohup /home/oracle/XXXX &
echo start ok !
fi
脚本三:
#!/bin/sh
count=`ps -fe |grep "a.out" | grep -v "grep" | wc -l`
if [ $count -lt 1 ]; then
/root/sh/restart.sh
脚本四:
PNAME="authd"
PATHNAME=/root/cauthd/build/
LENGTH=`ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c `
if test $LENGTH -eq 0
then
cd $PATHNAME
nohup $PNAME >/dev/null
脚本五:
#! /bin/bash
echo "请输入进程名:"
read process
echo "你要查找的进程是 $process ,正在查找..."
ps > text1
grep "$process" text1
declare -i a=$?
if [ $a -eq 0 ]
then
echo "该进程存在"
else
echo "该进程不存在"
fi
rm text1
linux持续检测进程脚本,用于检测进程的shell脚本代码小结相关推荐
- 扫盲 Linux&UNIX 命令行——从“电传打字机”聊到“shell 脚本编程”
扫盲 Linux&UNIX 命令行--从"电传打字机"聊到"shell 脚本编程" 本文目标读者 虽然本文的标题号称是[扫盲],但俺相信:即使是一些 P ...
- 嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)
大家好,是矜辰所致,嵌入式 Linux入 门第五课,本课开始简单学习一下 Shell 脚本编程. 目录 前言 一.Shell 脚本基础说明 1.1 什么是 Shell 脚本 1.2 Shell 脚本的 ...
- linux脚本登录启动失败,在Linux上检查用户登录成功与失败的shell脚本
在Linux上检查用户登录成功与失败的shell脚本 Linux管理员的典型任务之一是检查Linux系统中成功和失败的登录尝试. 手动验证它们非常困难,因为" /var/log/secure ...
- linux exec 脚本之家,详解Shell脚本中调用另一个Shell脚本的三种方式
主要以下有几种方式: Command Explanation fork 新开一个子 Shell 执行,子 Shell 可以从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回给父 ...
- linux执行sh文件 查进程,linux – 用于检查进程是否已在运行的Shell脚本,如果是,则退出...
我有一个 shell脚本,方法是status()和start().代码如下: #function to check the jmeter processes running status(){ PID ...
- linux脚本ping如何自动退出,shell脚本自动检测网络掉线和自动重连
在ppp移植成功后,有时会出现ppp掉线等情况.这篇文章写了一个自动检测连接网络的解决方法. 创建一个shell脚本,在里面添加一下内容.(记得给操作权限) #!/bin/sh //根据你自己的she ...
- softlockup检测(watchdog)原理(用于检测系统调度是否正常)
softlockup(watchdog)用于检测系统调度是否正常,即软锁的情况,当发生softlockup时,内核不能调度,但还能响应中断,对用户的表现可能为:能ping通,但无法登陆系统,无法进行正 ...
- linux怎么测试一个脚本,一个Linux中用于监控的简易shell脚本
系统管理员的任务真的很艰难,因为他/她必须监控服务器.用户.日志,还得创建备份,等等等等.对于大多数重复性的任务,大多数管理员都会写一个自动化脚本来日复一日地重复这些任务.这里,我们已经写了一个she ...
- 一个Linux中用于监控的简易shell脚本
系统管理员的任务真的很艰难,因为他/她必须监控服务器.用户.日志,还得创建备份,等等等等.对于大多数重复性的任务,大多数管理员都会写一个自动化脚本来日复一日地重复这些任务.这里,我们已经写了一个she ...
- 十大实用linux脚本,5个超实用的Shell脚本 - 米扑博客
分享5个shell脚本实例,大家可以借鉴下里面的思路,看下有没另外一种实现方式. 1.定时清空文件内容,定时记录文件大小 #!/bin/bash ########################### ...
最新文章
- linux系统源码安装教程,linux之源码包安装步骤
- 蓝桥杯真题 a组 java_2014蓝桥杯决赛A组第5题(java)
- REST API 基于ACCESS TOKEN 的权限解决方案
- 进程文件: cidaemon or cidaemon.exe
- Solaris的syslog机制
- 如何区分引用类型和原始类型
- Spring MVC 返回NULL时客户端用$.getJSON的问题
- git-分支的冲突与冲突的解决
- Java数据库接口JDBC入门基础讲座_JDBC基础教程之连接
- 免费素材下载:一套超棒的免费UI套件
- Qt---打印系统时间,毫秒级
- 偏差-方差分解简要推导
- 天下大事必作于细,聊聊腾讯兼容测试的升级“打怪”历程
- 我的年终奖发了!你呢???
- NXP RT1021初探
- 使用pyecharts遇到的坑(去掉地图标识小红点)!
- 提高网站转化率——页面停留时间与网站停留时间
- 机器学习笔记 - 使用TensorFlow进行音乐生成
- 链表之Reverselist
- Diffusion模型详解