Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2266603
  • 博文数量: 168
  • 博客积分: 6641
  • 博客等级: 准将
  • 技术积分: 1996
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-02 11:49
文章存档

2020年(4)

2019年(6)

2017年(1)

2016年(3)

2015年(3)

2014年(8)

2013年(2)

2012年(12)

2011年(19)

2010年(10)

2009年(3)

2008年(17)

2007年(80)

分类: LINUX

2007-09-29 18:35:10

SHELL死循环测试程序2例
 
2007.09.29 kenthy#qingdaonews.com
 
###########################################################################
 
例1: 运行脚本后会自动加载firefox浏览器,并打开指定网页。如果用户关闭firefox,脚本会再次自动重新打开firefox。
     如需结束循环,中止t2.sh进程即可。注意不要同时执行两个t1.sh脚本,否则……
     若事先不知道脚本名,也可以通过类似于"pstree | grep firefox"的命令获知其进程树,找到其父进程名killall掉即可。
     或者使用类似于"ps -elf | grep firefox | grep -v grep| awk '{print $5}'"的命令,查找firefox相关进程的父进程pid,选最小的一个干掉。
  文件名:t1.sh
  测试方式:执行sh t1.sh &
  文件内容:
#!/bin/bash
while true
do
  /usr/bin/firefox
  wait
done
 
###########################################################################

例2: 运行脚本后会检查、校正eth0网卡的IP设置等参数,并检查web程序(80端口)是否正常监听,否则自动加载默认的httpd服务。以后每隔5分钟检查一次。
  文件名:t2.sh
  测试方式:sh t2.sh &
  文件内容:
#!/bin/bash
while true
do
  NOWIP=`/sbin/ifconfig eth0 | grep 'inet addr' | cut -d : -f2 | awk '{print $1}'`
  if [ $NOWIP != '192.168.2.20' ] ; then
      /sbin/ifconfig eth0 192.168.2.20/24
      /sbin/ifconfig eth0 up
      /sbin/route add default gw 192.168.2.1
      echo -e 'nameserver 192.168.2.1\nnameserver 202.106.0.20' > /etc/resolv.conf
  fi
  PNUM=`netstat -anptl | grep :80 | wc -l`
  if [ $PNUM  -eq 0 ] ; then
      /etc/init.d/httpd start
  fi
  sleep 5m
done
阅读(2902) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~