1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
| #!/bin/bash
#author:wting(bug fixed version by suhai)
#这里替换为程序位置 #此处的APP_NAME为打包后jar包名 #注意:如果包名携带日期或其他会变化的内容,例如xxxx-1.0.0.20221110.release.jar,请修改此处的名称为xxxx这类固定且能标识服务的名称,同时替换start方法中的启动命令 APP_NAME=gps-ruoyi-admin.jar #添加jar包路径,方便在任何目录下都可以运行脚本启动服务 APP_PATH=/opt/hf-gps/jar
#使用说明,用来提示输入参数 usage() { echo "Usage: sh server.sh [start|stop|restart|status]" exit 1 }
#检查程序是否在运行 is_exist(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'` #如果不存在返回1,存在返回0 if [ -z "${pid}" ]; then return 1 else return 0 fi }
#启动命令执行后输出结果 start_log(){ is_exist if [ $? -eq 0 ]; then echo "${APP_NAME} 启动成功! pid=${pid}" else echo "${APP_NAME} 启动失败!请检查后重试" fi }
#启动方法 start(){ is_exist if [ $? -eq 0 ]; then echo "${APP_NAME} is already running. pid=${pid}" else nohup java -jar ${APP_PATH}/${APP_NAME} > /dev/null 2>&1 & #如果APP_NAME携带可变内容,请替换下方启动命令,符号 * 表示jar包名称中变化的部分 #nohup java -jar -Xmx512m -Xms512m ${APP_PATH}/${APP_NAME}*.jar >${APP_PATH}/web.log & start_log fi }
#停止方法 stop(){ is_exist if [ $? -eq "0" ]; then kill -9 $pid echo "${APP_NAME} 已关闭! pid=${pid}" else echo "${APP_NAME} is not running" fi #该脚本的特殊性:确保关闭所有openoffice进程 soffice_stop }
#输出运行状态 status(){ is_exist if [ $? -eq "0" ]; then echo "${APP_NAME} is running. Pid is ${pid}" else echo "${APP_NAME} is not running." fi }
#重启 restart(){ stop echo "${APP_NAME} 准备重启..." sleep 5 start }
#关闭openoffice soffice_stop(){ soffice_pid=`ps -e|grep soffice.bin |awk '{print $1}'` if [ -n "${soffice_pid}" ]; then kill -9 $soffice_pid echo "已关闭soffice.bin" fi }
#根据输入参数,选择执行对应方法,不输入则执行使用说明 case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; *) usage ;; esac
|