Java应用启动停止重启Shell脚本模板server.sh

 更新时间:2023年08月09日 11:22:45   作者:YYGP  
这篇文章主要为大家介绍了Java应用启动、停止、重启Shell脚本模板server.sh,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

server.sh

#!/bin/bash
#java options
APP_MAINCLASS=com.woo.erp.WooERPMain
PROC_NAME=WooERPMain
# 日志路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
LOG_PATh=/data/application/woo-erp/nohup.out
#Xms inin memery
#Xmx max memery
#Xmn young memery
JAVA_OPTS="-Duser.timezone="GMT+8" -Xms512m -Xmx2G -XX:CompressedClassSpaceSize=128m -XX:MetaspaceSize=200m -XX:MaxMetaspaceSize=200m -Xloggc:logs/gc.log -cp .:classes/:dependency/* -Dspring.profiles.active=default"
# 启动方法
start() {
    # 重新获取一下pid,因为其它操作如stop会导致pid的状态更新
    pid=`ps -ef | grep $PROC_NAME | grep -v grep | awk '{print $2}'`
    # -z 表示如果$pid为空时执行
    if [ -z $pid ]; then
      nohup java $JAVA_OPTS $APP_MAINCLASS /dev/null 2>&1 &
#        nohup java -jar $PROC_NAME $JAVA_OPTS /dev/null 2>&1 &
        pid=`ps -ef | grep $PROC_NAME | grep -v grep | awk '{print $2}'`
        echo ""
        echo "Service ${PROC_NAME} is starting!pid=${pid}"
        echo "........................Here is the log.............................."
        echo "....................................................................."
        # tail -f $LOG_PATh
        echo "........................Start successfully!........................."
    else
        echo ""
        echo "Service ${PROC_NAME} is already running,it's pid = ${pid}. If necessary, please use command: sh auto_deploy.sh restart."
        echo ""
  fi
}
# 停止方法
stop() {
  # 重新获取一下pid,因为其它操作如start会导致pid的状态更新
  pid=`ps -ef | grep $PROC_NAME | grep -v grep | awk '{print $2}'`
  # -z 表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
  if [ -z $pid ]; then
      echo ""
      echo "Service ${PROC_NAME} is not running! It's not necessary to stop it!"
      echo ""
  else
    kill -9 $pid
    echo ""
    echo "Service stop successfully!pid:${pid} which has been killed forcibly!"
    echo ""
    stop
    fi
}
# 输出运行状态方法
status() {
    # 重新获取一下pid,因为其它操作如stop、restart、start等会导致pid的状态更新
    pid=`ps -ef | grep $PROC_NAME | grep -v grep | awk '{print $2}'`
    # -z 表示如果$pid为空时执行。注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
    if [ -z $pid ];then
        echo ""
        echo "Service ${PROC_NAME} is not running!"
        echo ""
  else
        echo ""
        echo "Service ${PROC_NAME} is running. It's pid=${pid}"
        echo ""
    fi
}
# 重启方法
restart() {
    echo ""
    echo ".............................Restarting.............................."
    echo "....................................................................."
    stop
    start
}
info() {
    echo "System Information:"
    echo "****************************"
    echo `head -n 1 /etc/issue`
    echo `uname -a`
    echo "****************************"
    echo "JAVA_HOME=$JAVA_HOME"
    echo `$JAVA_HOME/bin/java -version`
    echo "****************************"
    echo "APP_MAINCLASS=$APP_MAINCLASS"
    echo "****************************"
}
if [ ! -n "$1" ] ;then
    echo "Usage: $0 {start|stop|restart|status|info}"
elif [ $1 = "start" ];then
    start
elif [ $1 = "stop" ];then
    stop
elif [ $1 = "restart" ];then
    restart
elif [ $1 = "status" ];then
    status
elif [ $1 = "info" ];then
    info
fi

使用示例

./server start #启动
./server stop #停止
./server restart #重启
./server status #查看启动状态
./server info #查看系统信息

以上就是Java应用启动、停止、重启Shell脚本模板server.sh的详细内容,更多关于Java启动停止重启脚本模板的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Nacos配置中心的实现

    详解Nacos配置中心的实现

    Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案。而 Nacos 作为 Spring Cloud Alibaba 的核心组件之一,提供了两个非常重要的功能:注册中心和配置中心,我们今天来了解和实现一下二者
    2022-08-08
  • SpringBoot添加License的多种方式

    SpringBoot添加License的多种方式

    License指的是版权许可证,当我们开发完系统后,如果不想让用户一直白嫖使用,比如说按时间续费,License的作用就有了。我们可以给系统指定License的有效期,控制系统的可用时间。
    2021-06-06
  • Java中实现代码优化的技巧分享

    Java中实现代码优化的技巧分享

    这篇文章主要跟大家谈谈优化这个话题,那么我们一起聊聊Java中如何实现代码优化这个问题,小编这里有几个实用的小技巧分享给大家,需要的可以参考一下
    2022-08-08
  • java中动态代理如何实现详解

    java中动态代理如何实现详解

    动态代理是基于接口实现的代理,mybatis就是用这个技术实现的,下面这篇文章主要给大家介绍了关于java中动态代理如何实现的相关资料,需要的朋友可以参考下
    2024-01-01
  • IDEA打包应用程序的教程图解

    IDEA打包应用程序的教程图解

    这篇文章主要介绍了IDEA打包应用程序的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • idea插件在线和离线安装方法

    idea插件在线和离线安装方法

    这篇文章主要介绍了idea插件在线和离线安装方法,文末补充介绍了IntelliJ IDEA 安装mybaits当前运行sql日志插件在线与离线安装方法
    ,感兴趣的朋友一起看看吧
    2023-12-12
  • java基础入门之IO流

    java基础入门之IO流

    流是一种抽象概念,它代表了数据的无结构化传递。。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出
    2021-06-06
  • SpringBoot结合dev-tool实现IDEA项目热部署的流程步骤

    SpringBoot结合dev-tool实现IDEA项目热部署的流程步骤

    这篇文章主要给大家介绍了SpringBoot结合dev-tool实现IDEA项目热部署的流程步骤,文章通过图文介绍的非常详细,对大家的学习有一定的帮助,需要的朋友可以参考下
    2023-10-10
  • Java Handler同步屏障浅析讲解

    Java Handler同步屏障浅析讲解

    同步屏障机制是什么?Handler发送的消息分为普通消息、屏障消息、异步消息,一旦Looper在处理消息时遇到屏障消息,那么就不再处理普通的消息,而仅仅处理异步的消息。不再使用屏障后,需要撤销屏障,不然就再也执行不到普通消息了
    2022-08-08
  • java MultipartFile文件上传重命名详细代码示例

    java MultipartFile文件上传重命名详细代码示例

    在文件上传功能开发中,为防止文件重名导致数据覆盖,常见的做法是在文件名前加上UUID或时间戳来区分,这篇文章主要介绍了java MultipartFile multipartFile文件上传重命名的相关资料,需要的朋友可以参考下
    2024-09-09

最新评论