Chinaunix首页 | 论坛 | 博客
  • 博客访问: 143212
  • 博文数量: 123
  • 博客积分: 5770
  • 博客等级: 大校
  • 技术积分: 1240
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-12 16:31
个人简介

闲情逸致 http://EZ38.com

文章分类

全部博文(123)

文章存档

2014年(1)

2010年(122)

我的朋友
最近访客

分类: LINUX

2010-03-05 16:12:10

linux下如何自动检测并重新启动一个死掉的进程,然后再把它杀死:)(shell脚本实现)

 
. /etc/profile #如果要把这个shell脚本放到crontab中,这句不能少,用来初始化程序环境变量,这是root用户的环境变量文件

PNAME="程序名字"    #引号不能少,因为程序名字后面可能会有空格和参数
PATHNAME=程序所在文件夹绝对路径
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 &
fi

杀死进程(可能有多个,暂不考虑)

PNAME="程序名字"    #引号不能少,因为程序名字后面可能会有空格和参数
PATHNAME=程序所在文件夹绝对路径
PID=`ps -ef|grep "$PNAME"|grep -v "grep"|awk '{print $2}'`
或者
PID=`ps -ef|grep "$PNAME"|grep -v "grep"|cut -b 10-15`#引号不能少,同上

LENGTH=echo $PID|wc -c

if test $length -ne 0
then
kill -9 $PID
fi

备注:

    -eq 等于 -z 空串(if [ -z $filename2_size ] || [ -z $filename1_size ] || [ -z $filename0_size ]; then
                                     echo 'no such files' )
    -ne 不等于 = 两个字符相等
-gt 大于 != 两个字符不等
-lt 小于 -n 非空串
-le 小于等于
-ge 大于等于

命令1 && 命令2

   &&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;
   换句话说,“如果这个命令执行成功&&那么执行这个命令”。
  
命令1 || 命令2

   如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);
   或者换句话说,“如果这个命令执行失败了|| 那么就执行这个命令”

 

阅读(536) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~