Chinaunix首页 | 论坛 | 博客
  • 博客访问: 119918
  • 博文数量: 24
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-22 14:58
个人简介

坚持,做最好的自己

文章分类

全部博文(24)

文章存档

2015年(2)

2014年(9)

2013年(13)

我的朋友

分类: 其他UNIX

2013-04-02 19:13:41

1:可以直接关掉终端,在后台运行
2:可以查询服务的状态
3:可以定时启动需要运行的程序(范例为17点启动)
4:可以在运行时避免重复启动
tipserver

#!/bin/sh


run_main_programer()
{
while true
do
if [ "$date_hour" = '17' ]
then
as=`date +'%Y%m%d_%H%M%S'`
sh ./control_sh.sh >log/control_sh_$as.log &
sleep 3600
fi
sleep 300
date_hour=`date +'%H'`
done
}


myself=`echo $0 | sed 's/^\.\///g'`


if [ $# -eq 0 ]
then
  echo "Unknown command option"
  echo "Usage::"
  echo "       $myself start | stop | status"
  exit
fi


case "x$1"
in
xstart)
#当前后台运行的线程列表
thread=`ps -ef | grep -v grep | grep -w "$myself" | grep "start" | awk '{ print $2 }'`
#只有本线程运行
if [ "$thread" = "$$" ]
then
nohup sh $myself start >/dev/null &
sleep 3
echo "The $myself have been started."
else
#取得父线程号
father_thread=`ps -ef | grep -v grep | grep "$myself" | grep "start" | grep "$$" | awk '{ print $3 }'`
#当前线程的父线程存在
if [ `ps -ef | grep -v grep | grep "$myself" | grep "start" | grep "$father_thread" | wc -l` -eq 2 ]
then
run_main_programer
fi
echo "The $myself is running."
fi
;;
xstop)
thread=`ps -ef | grep -v grep | grep "$myself" | grep "start" | awk '{ print $2 }'`
if [ -n "$thread" ]
then
kill -9 ${thread} 2>/dev/null
fi
echo "The $myself have been stoped."
;;
xstatus)
thread=`ps -ef | grep -v grep | grep "$myself" | grep "start" | awk '{ print $2 }'`
if [ -n "$thread" ]
then
echo "The $myself is running."
else
echo "The $myself is not running."
fi
;;
*)
echo '  Error parameter.'
esac

-------------------------------20140321
该脚本写于2009年,目前已经做了多次修改,通过配置文件实现程序的自动灵活调度,而不必修改该程序
阅读(2125) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~