Springboot项目Linux下配置为服务并开启自启动

一、常规方式启动

通过jar启动的方式大家应该比较清楚,即:java -jar xxx.jar。本例使用nohup ...... &实现守护进程方式启动,防止关闭命令行窗口结束进程。需要新建日志目录log来存放输出日志。
启动脚本示例:

#!/bin/bash
#定义jar文件名称
RESOURCE_NAME=v_bank-1.0.0-SNAPSHOT.jar

#停止服务
PID=$(ps -ef | grep $RESOURCE_NAME | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo VBank Application is already stopped
else

    echo kill $PID
    kill $PID
fi


#启动服务
nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10000 -jar $RESOURCE_NAME   >log/$RESOURCE_NAME-out.log &

二、服务方式启动

但生产环境中往往需要配置为服务,并开机启动,网上有好多Springboot项目配置服务与开机自启动的方法,但都比较麻烦,而且几乎看不懂。经过一番摸索终于找到相对很简单的方法来实现,如下:

步骤

  1. 首先在 pom.xml 中配置插件
    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.8
                    1.8
                    UTF-8
                
            
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    true
                
                
                    
                        
                            repackage
                        
                    
                
            
        
    

特别注意一下 true

  1. 上传jar到服务器
    Springboot项目Linux下配置为服务并开启自启动_第1张图片
    上传jar
  2. 设置jar包的可执行权限,默认是没有执行权限的,通过以下方式来设置为可执行权限:
    chmod 777 setup-init-0.0.1-SNAPSHOT.jar
    或者
    chmod +x setup-init-0.0.1-SNAPSHOT.jar
    Springboot项目Linux下配置为服务并开启自启动_第2张图片
    拥有了执行权限
  3. 接下来创建软连接到/etc/init.d下面,格式如下:
    ln -s /root/vbank/setup-init-0.0.1-SNAPSHOT.jar /etc/init.d/setup-init,如果不是root账户登录,则前面需要加sudo。
  4. 设置完毕后,cd /etc/init.d查看软连接,如下图:
    Springboot项目Linux下配置为服务并开启自启动_第3张图片
    软连接
  5. 此时便完成了服务的设置,可通过下面命令进行启动、停止和查看状态,示例如图:
    service setup-init start 启动
    service setup-init stop 停止
    service setup-init status 查看状态
[root@izuf672oio5mc4fbyj0s0jz vbank]# service setup-init start
Application is running as root (UID 0). This is considered insecure.
Started [28976]
[root@izuf672oio5mc4fbyj0s0jz vbank]# service setup-init stop
Application is running as root (UID 0). This is considered insecure.
Not running (process 28976). Removing stale pid file.
[root@izuf672oio5mc4fbyj0s0jz vbank]# service setup-init restart
Application is running as root (UID 0). This is considered insecure.
Not running (pidfile not found)
Started [29189]

执行命令后将得到形如 Started|Stopped [PID] 的结果反馈。
默认PID文件路径:/var/run/appname/appname.pid
默认服务日志文件路径:/var/log/appname.log(可以通过下面.conf 的方式修改LOG_FOLDER)

  1. 使用自定义的.conf文件来变更默认配置,方法如下:
    在jar包相同路径下创建一个.conf文件,名称应该与.jar的名称相同,如myapp.conf(如果我们打包的文jar文件为 myapp-1.0.0.jar 那么这里的conf文件也应该是 myapp-1.0.0.conf),其内容配置可以如下:
    JAVA_HOME=/usr/local/jdk
    JAVA_OPTS=-Xmx1024M
    LOG_FOLDER=/data/logs/myapp
    注:LOG_FOLDER 对应的文件夹目录要必须存在,如果目录不存在,服务并不会自从创建目录。
  2. 接下来设置开机启动,命令也很简单:
    sudo upate-rc.d setup-init defaults

你可能感兴趣的:(Springboot项目Linux下配置为服务并开启自启动)