加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

编写通用shell脚本启动java项目,适用于多数服务,只需修改服务

发布时间:2020-12-14 06:25:44 所属栏目:Java 来源:网络整理
导读:文件名:service-user.sh 文件内容: ##shell脚本的头文件必须有#!/bin/sh ##再次配置java环境变量以防报其他错误## java env#jdk安装目录export JAVA_HOME=/usr/java/jdk1.8.0_144export JRE_HOME=$JAVA_HOME/jre ## service nameAPP_NAME=user ##服务存放

文件名:service-user.sh

文件内容:

##shell脚本的头文件必须有#!/bin/sh

##再次配置java环境变量以防报其他错误## java env#jdk安装目录export JAVA_HOME=/usr/java/jdk1.8.0_144export JRE_HOME=$JAVA_HOME/jre

## service nameAPP_NAME=user

##服务存放的文件夹SERVICE_DIR=/service/$APP_NAME##服务名SERVICE_NAME=edu-service-$APP_NAME##jar包的名字JAR_NAME=$SERVICE_NAME.jar##生成进程文件PID=$SERVICE_NAME.pid

##进入服务存放的文件夹cd $SERVICE_DIR

##接收一个从linux控制台输入的参数 ./service-user.sh start/stop/restartcase "$1" in

##输入参数为start时启动项目 start) ##nohup守护进程启动项目,即使退出了终端项目仍在运行;/dev/null把日志输入到空即不输出日志到notout.out,因为项目里面已经有log4j日志了 nohup $JRE_HOME/bin/java -Xms256m -Xmx512m -jar $JAR_NAME >/dev/null 2>&1 & echo $! > $SERVICE_DIR/$PID echo "=== start $SERVICE_NAME" ;;

##输入参数为stop时停止项目 stop) ##杀死进程id即edu-service-user.pid kill `cat $SERVICE_DIR/$PID` #删除进程pid的文件 rm -rf $SERVICE_DIR/$PID echo "=== stop $SERVICE_NAME"

#等待5s sleep 5 ## ## edu-service-aa.jar ## edu-service-aa-bb.jar ##获取进程id -w是全匹配,不加-w就是模糊匹配,可能会造成误杀进程 P_ID=`ps -ef | grep -w "$SERVICE_NAME" | grep -v "grep" | awk '{print $2}'` #如果进程id为空就提示进程不存在或者已经停止 if [ "$P_ID" == "" ]; then echo "=== $SERVICE_NAME process not exists or stop success" ##如果进程id不为空就强杀进程 else echo "=== $SERVICE_NAME process pid is:$P_ID" echo "=== begin kill $SERVICE_NAME process,pid is:$P_ID" kill -9 $P_ID fi ;;

##输入参数为restart时重启项目 restart) $0 stop sleep 2 $0 start echo "=== restart $SERVICE_NAME" ;;

##什么都不输入时重启项目 *) ## restart 先停止再重启可以避免进程冲突,因为这样每次生成的进程id都不一样 $0 stop sleep 2 $0 start ;;

esacexit 0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读