SHell启动服务停止重启脚本模板
来源:互联网 发布:淘宝开店货源哪来 编辑:程序博客网 时间:2024/05/20 06:25
#!/bin/bash# --------------------------------------------------------------------# 文件: filename.sh.# 用法: ./filename.sh start|stop|restart.# 时间: 2009/02/10.# 编辑: deng.gonghai.# 邮件: 1073747506@qq.com.# 描述: 用于启动,停止,重启XXX服务.# 注意: 如果你修改了文件,请把修改的内容添加到下面,方便后面的人理解.# --------------------------------------------------------------------## 该脚本用于启动,停止,重启服务.# 停止服务时,脚本使用 kill pid方式. 可能在某种程度上会导致停止失败.# 如果遇到停止失败情况,需要使用kill -9 强制杀死进程.## CLASS_PATH : 一般情况下该值为私有工程的二进制文件目录.# MainClass : 入口方法类.# VM_ARGUMENTS : 为虚拟机参数,指定内存大小等一些信息.# PROGRAM_ARGUMENTS : 方法参数, 即Main方法的 args 参数.# CONSOLE_LOG : 控制台输出位置.## 服务名,该参数配合 ps -ef 命令用来查找服务信息.# 设置此值的目的是查找服务进程ID时方便.一般来说此值具有一定的标识意义.SERVER_NAME="MyTest"# JDK安装目录,使用默认的JDK,推荐修改为JDK路径.JAVA_HOME=$JAVA_HOME# 使用的库文件目录,所有的外部jar包请放到这个目录下.INFLIB=/home/hadoop/app/mylib# 一般情况下该值为项目二进制文件的根目录.如果项目打成了jar包,则该值指定为jar包即可.CLASS_PATH=myproject.jar# 虚拟机参数,设置虚拟机内存等一些配置.#VM_ARGUMENTS="-Xms128m -Xmx256m -XX:MaxPermSize=64m \# -Djava.awt.headless=true \# -XX:+HeapDumpOnOutOfMemoryError \# -XX:+HeapDumpOnCtrlBreak \# -XX:HeapDumpPath=/app/logs\# -Xverbosegc:file=/app/logs/gc.log \# -Dfile.encoding=GBK \# -Duser.language=zh \# -Duser.region=CN \# -Dlog4j.configuration=file:./classes/log4j_cfg/log4j_MGR.properties "# 服务启动的主类.MainClass=com.ztesoft.mputils.StartTest# main方法的参数在这里设置.参数与参数之间请用空格隔开.# 字符串中间有空格,所以需要使用双引号.PROGRAM_ARGUMENTS="args1 args2 args3"# 自定义控制台输出路径,默认情况下为nohup.outCONSOLE_LOG="nohup.out"# 启动服务(判断服务是否启动,只有没有启动的情况下,才启动.)function start(){ # 正在运行的服务数量 runNum=`ps -ef|tr -s ' '|sort -n |grep $SERVER_NAME |grep -v "grep" | awk '{print $2}' |wc -l` # 当前运行的服务数为 0 ,启动服务. if [ $runNum -eq 0 ] ; then # 启动命令 command="$JAVA_HOME/bin/java -D$SERVER_NAME \ -cp $CLASS_PATH -Djava.ext.dirs=$INFLIB \ $VM_ARGUMENTS $MainClass $PROGRAM_ARGUMENTS" # 将服务挂到后台启动,并将控制台日志重定向到 CONSOLE_LOG. nohup $command > $CONSOLE_LOG 2>&1 & # 打开控制台日志. if [ $? -eq 0 ] ; then echo "服务 $SERVER_NAME 启动成功!! 服务进程PID=$! . 正在打开控制台日志..." tail -f $CONSOLE_LOG else echo "服务启动失败,1秒钟后将打开控制台日志." sleep 1 tail -f $CONSOLE_LOG fi # 当前可能存在正在运行的服务,或者脚本判断服务数量有错误. else echo "服务已经启动,启动服务个数为 ${runNum} 个, 请先停止服务 $SERVER_NAME." fi}# 停止服务function stop(){ # 正在运行的服务数量 runNum=`ps -ef|tr -s ' '|sort -n |grep $SERVER_NAME |grep -v "grep" | awk '{print $2}' |wc -l` # 如果正在运行的服务数量为1, 则停止服务 if [ $runNum -eq 1 ] ; then PID=`ps -ef|tr -s ' '|sort -n |grep $SERVER_NAME |grep -v "grep" | awk '{print $2}'` if [ $PID -gt 1 ] ; then echo "服务 $SERVER_NAME 的PID为 $PID. 2秒钟之后将停止该服务." sleep 2 kill $PID sleep 3 if [ $? -eq 0 ] ; then echo "停止服务 $SERVER_NAME 成功!!" return 0 else echo "停止服务发生异常,请手工停止并检查原因." fi else echo "获取PID失败,获取PID为 $PID .请手工停止服务 $SERVER_NAME ." fi # 停止服务数量不对,需要人工干预 else if [ $runNum -eq 0 ] ; then echo "当前正在运行服务数量 $runNum 个.无正在运行的服务." return 0 else echo "当前正在运行服务数量 $runNum 个,请手动选择停止!!" fi fi return 1}# 重启function restart(){ stop if [ $? -eq 0 ] ; then echo "正在启动服务..." sleep 5 start else echo "停止服务失败,请检查原因!!" fi}# 其他情况function others(){ echo " start 启动程序" echo " stop 停止程序" echo " restart 重启程序"}case $1 in start) start ;; stop) stop ;; restart) restart ;; *) others ;;esac
0 0
- SHell启动服务停止重启脚本模板
- Nginx服务启动、停止和重启等操作的SHELL脚本
- linux启动java进程的shell脚本(包括启动,停止,重启)
- 服务启动停止脚本
- shell 启动、停止、重启java程序
- shell 启动、停止、重启java程序
- Nginx启动、重启、停止脚本
- nginx启动、重启、停止脚本
- Linux vsftpd启动,停止,重启脚本
- 多Tomcat 启动/停止/重启 脚本
- nginx启动/重启/停止脚本
- mysql服务启动、停止、重启
- mysql服务启动、停止、重启
- 如何启动、停止、重启MySQL服务
- 启动、重启与停止mysql服务
- apache 服务启动停止重启
- mysql服务启动、停止、重启
- MYSQL服务启动、停止和重启
- struts2.0 的action标签使用
- Error:Execution failed for task ':app:clean'. > Unable to delete file: xxx.file
- iOS调试技巧-断点调试
- 用editplus+gcc搭建C语言开发环境
- git reset
- SHell启动服务停止重启脚本模板
- 深度学习系列(九):详解工具箱参数及网络一种改进方式-dropout
- 全面薪酬制度的优势
- Docker的Web UI管理:shipyard+swarm-(手动)安装&试用
- eclipse部署java web项目到tomcat中
- Codeforces 612D The Union of k-Segments
- android Volley 上传文件上传图片
- 面试官立马淘汰的四类求职者
- 通过adb命令向Android模拟器中导入通讯录联系人