一个简单的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

_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脚本代码小结相关推荐

  1. 扫盲 Linux&UNIX 命令行——从“电传打字机”聊到“shell 脚本编程”

    扫盲 Linux&UNIX 命令行--从"电传打字机"聊到"shell 脚本编程" 本文目标读者 虽然本文的标题号称是[扫盲],但俺相信:即使是一些 P ...

  2. 嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)

    大家好,是矜辰所致,嵌入式 Linux入 门第五课,本课开始简单学习一下 Shell 脚本编程. 目录 前言 一.Shell 脚本基础说明 1.1 什么是 Shell 脚本 1.2 Shell 脚本的 ...

  3. linux脚本登录启动失败,在Linux上检查用户登录成功与失败的shell脚本

    在Linux上检查用户登录成功与失败的shell脚本 Linux管理员的典型任务之一是检查Linux系统中成功和失败的登录尝试. 手动验证它们非常困难,因为" /var/log/secure ...

  4. linux exec 脚本之家,详解Shell脚本中调用另一个Shell脚本的三种方式

    主要以下有几种方式: Command Explanation fork 新开一个子 Shell 执行,子 Shell 可以从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回给父 ...

  5. linux执行sh文件 查进程,linux – 用于检查进程是否已在运行的Shell脚本,如果是,则退出...

    我有一个 shell脚本,方法是status()和start().代码如下: #function to check the jmeter processes running status(){ PID ...

  6. linux脚本ping如何自动退出,shell脚本自动检测网络掉线和自动重连

    在ppp移植成功后,有时会出现ppp掉线等情况.这篇文章写了一个自动检测连接网络的解决方法. 创建一个shell脚本,在里面添加一下内容.(记得给操作权限) #!/bin/sh //根据你自己的she ...

  7. softlockup检测(watchdog)原理(用于检测系统调度是否正常)

    softlockup(watchdog)用于检测系统调度是否正常,即软锁的情况,当发生softlockup时,内核不能调度,但还能响应中断,对用户的表现可能为:能ping通,但无法登陆系统,无法进行正 ...

  8. linux怎么测试一个脚本,一个Linux中用于监控的简易shell脚本

    系统管理员的任务真的很艰难,因为他/她必须监控服务器.用户.日志,还得创建备份,等等等等.对于大多数重复性的任务,大多数管理员都会写一个自动化脚本来日复一日地重复这些任务.这里,我们已经写了一个she ...

  9. 一个Linux中用于监控的简易shell脚本

    系统管理员的任务真的很艰难,因为他/她必须监控服务器.用户.日志,还得创建备份,等等等等.对于大多数重复性的任务,大多数管理员都会写一个自动化脚本来日复一日地重复这些任务.这里,我们已经写了一个she ...

  10. 十大实用linux脚本,5个超实用的Shell脚本 - 米扑博客

    分享5个shell脚本实例,大家可以借鉴下里面的思路,看下有没另外一种实现方式. 1.定时清空文件内容,定时记录文件大小 #!/bin/bash ########################### ...

最新文章

  1. linux系统源码安装教程,linux之源码包安装步骤
  2. 蓝桥杯真题 a组 java_2014蓝桥杯决赛A组第5题(java)
  3. REST API 基于ACCESS TOKEN 的权限解决方案
  4. 进程文件: cidaemon or cidaemon.exe
  5. Solaris的syslog机制
  6. 如何区分引用类型和原始类型
  7. Spring MVC 返回NULL时客户端用$.getJSON的问题
  8. git-分支的冲突与冲突的解决
  9. Java数据库接口JDBC入门基础讲座_JDBC基础教程之连接
  10. 免费素材下载:一套超棒的免费UI套件
  11. Qt---打印系统时间,毫秒级
  12. 偏差-方差分解简要推导
  13. 天下大事必作于细,聊聊腾讯兼容测试的升级“打怪”历程
  14. 我的年终奖发了!你呢???
  15. NXP RT1021初探
  16. 使用pyecharts遇到的坑(去掉地图标识小红点)!
  17. 提高网站转化率——页面停留时间与网站停留时间
  18. 机器学习笔记 - 使用TensorFlow进行音乐生成
  19. 链表之Reverselist
  20. Diffusion模型详解

热门文章

  1. 为什么CPU的使用率总是100%
  2. 11.PHP核心技术与最佳实践 --- 高性能网站架构方案
  3. 5. soapui 测试
  4. mysql字段加密存储过程_数据库:加密存储过程
  5. script片段在前导致对下文的html元素引用失效
  6. PHP学习记录(一)
  7. 如何面试前端工程师?
  8. ubuntu 环境变量配置
  9. sqlserver2005查询表字典
  10. Conditional特性用法