linux(centos6.5)下部署springboot jar包用 *.sh 文件启动项目并将项目做成开机自启动服务

第一种方法:非自启动方式

1.如果你使用的是maven来管理项目,执行以下命令进行项目打包

  1. cd 项目根目录(和pom.xml同级)
  2.  
    mvn clean package
  3.  
    ## 或者执行下面的命令
  4.  
    ## 排除测试代码后进行打包
  5.  
    mvn clean package -Dmaven.test.skip=true

执行后会在项目更目录下生成一个target文件会生成一个*.jar 文件,这样打包就完成了,接下来在linux下部署

2.将jar文件传到linux目录下(这里我创建了一个java文件夹)

  1.  
    cd /java #切换到java 目录下
  2.  
    vim /java/start.sh #在java目录下创建start.sh 文件
  3.  
    vi /java/start.sh # 执行此命令对start.sh 文件进行编辑
  4.  
    写入下列内容:
  5.  
    #!/bin/sh
  6.  
     
  7.  
    rm -f tpid
  8.  
    APP_NAME=familySign
  9.  
    APP_JAR=$APP_NAME".jar"
  10.  
    nohup java -Dfile.encoding=UTF-8 -jar $APP_JAR --spring.config.location=application.properties > ./logs/$APP_NAME".log" 2>&1 &
  11.  
    echo $! > $APP_NAME".tpid"
  12.  
    echo $APP_NAME Start Success!
  13.  
     
  14.  
    编辑完成后 点击ESC键退出
  15.  
    输入 :wq 退出保存
  16.  
    给文件赋予执行权:
  17.  
    chmod a+x start.sh
  18.  
    chmod a+x familySign.jar
  19.  
    在java目录下执行 start.sh 文件
  20.  
    [root@localhost java]# ./start.sh
  21.  
    familySign Start Success!
  22.  
    项目启动成功
  23.  
     

在此需要注意的是:logs文件夹要手动创建。不然无法正常 运行。

如果项目停止项目运行:

  1.  
    在java目录下创建stop.sh 文件
  2.  
    [root@localhost ~]# cd /java
  3.  
    [root@localhost java]# vim /java/stop.sh
  4.  
    写入下列内容
  5.  
    #!/bin/sh
  6.  
    APP_NAME=familySign
  7.  
     
  8.  
    tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
  9.  
    if [ ${tpid} ]; then
  10.  
    echo 'Stopping' $APP_NAME '...'
  11.  
    kill -15 $tpid
  12.  
    fi
  13.  
    sleep 5
  14.  
    tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
  15.  
    if [ ${tpid} ]; then
  16.  
    echo 'Kill' $APP_NAME 'Process!'
  17.  
    kill -9 $tpid
  18.  
    else
  19.  
    echo $APP_NAME 'Stoped Success!'
  20.  
    fi
  21.  
    写入完成点击ESC键退出编辑
  22.  
    输入 :wq 退出保存文件
  23.  
    执行如下命令给stop.sh 文件赋予执行
  24.  
    chmod a+x stop.sh
  25.  
    执行stop.sh 文件
  26.  
    [root@localhost java]# ./stop.sh
  27.  
    Stopping familySign ...
  28.  
    项目停止运行成功

chmod a+x 文件名 a 是指赋予所用用户执行权

到这里项目的的打包部署就完成了。

第二种方式 :开机自启动服务

1.将项目运行添加为开机自启动服务:

  1.  
    [root@localhost ~]# cd /etc/init.d
  2.  
    [root@localhost init.d]# vim /etc/init.d/autostart
  3.  
    #!/bin/sh
  4.  
    #chkconfig: 2345 80 90
  5.  
    rm -f tpid
  6.  
    APP_NAME=/java/familySign_API/familySign #jar 包路径 根据自己的修改
  7.  
    APP_JAR=$APP_NAME".jar"
  8.  
     
  9.  
    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_171
  10.  
    export JRE=/usr/lib/jvm/jdk1.8.0_171/jre
  11.  
    export CLASSPATH=$JAVAHOME/lib:$JRE/lib:.
  12.  
    export PATH=$PATH:$JAVA_HOME/bin:$JRE/bin
  13.  
     
  14.  
    nohup java -Dfile.encoding=UTF-8 -jar $APP_JAR --spring.config.location=/java/familySign_API/application.properties > /java/familySign_API/logs/familySign".log" 2>&1 &
  15.  
     
  16.  
    echo $! > $APP_NAME".tpid"
  17.  
     
  18.  
    echo $APP_NAME Start Success!
  19.  
    同上编辑完成保存退出
  20.  
    chmod a+x autostart
  21.  
    赋予执行权
  22.  
    执行如下命令将autostart添加为自启服务
  23.  
    chkconfig --add autostart # (首先,添加为系统服务,注意add前面有两个横杠)
  24.  
     
  25.  
    chkconfig autostart on #开机自启
  26.  
    chkconfig --list (列表显示)查看是否添加到服务列表
  27.  
    service autostart start(启动服务,就是执行my的脚本)
  28.  
    /java/familySign_API/familySign Start Success!
  29.  
    项目运行成功。


export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_171
export JRE=/usr/lib/jvm/jdk1.8.0_171/jre
export CLASSPATH=$JAVAHOME/lib:$JRE/lib:.
export PATH=$PATH:$JAVA_HOME/bin:$JRE/bin 

这个部分为jdk 环境变量,依据自己的安装目录进行更改即可;

可以重启服务器试试看是否启动成功

原文地址:https://www.cnblogs.com/telwanggs/p/14072401.html