123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #!/bin/bash
- #bighead make a patch 20141010
- #如果没输入参数 则提示下用法
- if [ $# -eq 0 ] ; then
- echo "go.sh [需要启动的程序名]"
- exit
- fi
- svr=$1
- ######################### 以下内容一般无需修改 #########################
- #保存日志的目录
- log_path=/tmp/log
- #设置一些变量
- MV="mv -f"
- log=${svr}.log #设置生成日志名
- elog=${svr}.log.err #设置err日志名
- #下面代码为保持一天的最近一次重启日志
- #log_bak=${svr}.log.$(date +%Y%m%d).log
- #elog_bak=${svr}.log.$(date +%Y%m%d).err
- log_bak=${svr}.log.$(date +%Y%m%d_%H%M%S).log
- elog_bak=${svr}.log.$(date +%Y%m%d_%H%M%S).err
- #准备工作 允许生成core文件 并切换到脚本所在路径
- ulimit -c 1000000
- ShDir=${0%/*}
- cd $ShDir
- #杀进程
- killall -9 -q ${svr}
- echo "Kill ${svr} process"
- #备份日志
- if [ -f ${log_path}/${log} ]; then
- ${MV} ${log_path}/${log} ${log_path}/${log_bak}
- echo "${MV} ${log_path}/${log} ${log_path}/${log_bak}"
- fi
- #错误日志有内容才需备份
- if [ -f ${log_path}/${elog} ]; then
- if [ -s ${log_path}/${elog} ]; then
- ${MV} ${log_path}/${elog} ${log_path}/${elog_bak}
- echo "${MV} ${log_path}/${elog} ${log_path}/${elog_bak}"
- fi
- fi
- #启动程序前再次确认 进程是不是被干掉了 如果没被干掉 就多等1秒
- INFO=`ps aufx | grep "${svr}" | grep -v "grep"`
- if [ -n "$INFO" ]; then
- sleep 1
- fi
- #启动程序 带上全路径
- echo " ${PWD}/${svr} 2>${log_path}/${elog} > ${log_path}/${log}"
- nohup ${PWD}/${svr} 2>${log_path}/${elog} > ${log_path}/${log} &
- echo " "
- if [ $# -ge 1 ]; then
- if [ $1 = "showlog" ]; then
- echo "showlog..."
- tail -f ${log_path}/${log}
- fi
- fi
- # END
|