spring-boot 注册为系统服务, 不会挂那种

注意

这里以打出的包名为 spring.jar,运行的用户为 apprun 为例,
以下所有的文件均需apprun有权限

开发在pom中作如下配置


    spring
    
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                true
            
        
    

打包命令

mvn clean package -Dmaven.test.skip=true

将 java 包上传到服务器,在jar包同级目录中创建 spring.conf 文件,并填写如下配置;
-Xmx和-Xms可以根据服务器的内存大小修改;
RUN_ARGS 中 location 后面路径可以根据需要改变

# 指定java home的路径
JAVA_HOME=/opt/soft/jdk1.8/
# 指定虚机机参数
JAVA_OPTS="-server -Xmx100m -Xms100m -Xloggc:/apprun/log/pandora_gc.log -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=utf-8"
# 指定spring boot运行参数
RUN_ARGS="--spring.config.location=/apprun/application-prod.properties"

创建Java命令连接(Optional,非必须)

# 创建java 连接 (需要 sudo 权限)
sudo ln -s /apprun/jdk/bin/java /sbin/java

在 /etc/systemd/system 目录下创建服务 spring.service

[Unit]
# 服务描述
Description=spring
# 指定了在systemd在执行完那些target之后再启动该服务
#Documentation=https://www.baidu.com
After=syslog.target

[Service]
User=apprun
# 指定 jar 包路径
ExecStart=/apprun/spring.jar
SuccessExitStatus=143
Restart=always
PrivateTmp=true

[Install]
# 多用户
WantedBy=multi-user.target

修改权限

chown -R apprun.apprun /apprun/spring.jar
chown -R apprun.apprun /apprun/spring.conf
chmod 755 /apprun/spring.jar

重载服务信息

# reload 服务
systemctl daemon-reload

启动服务

systemctl start spring.service

停止服务

systemctl stop spring.service

重启服务

systemctl restart spring.service

开启开机启动

systemctl enable spring.service

查看系统进程

systemctl status spring.service

查看启动日志(报错)

journalctl -u spring.service

注意如果启动失败得话需要查看所有文件是否有apprun用户权限

你可能感兴趣的:(spring-boot 注册为系统服务, 不会挂那种)