centos7如何通過(guò)systemctl啟動(dòng)springboot服務(wù)代替java -jar方式啟動(dòng)
背景:以前啟動(dòng)jar包都是通過(guò)java -jar,后面了解到一種注冊(cè)服務(wù)式啟動(dòng)jar包的方式,所以做個(gè)記錄。
注意:我在寫該篇博客的時(shí)候,給腳本代碼都加了#注釋來(lái)解釋該行腳本命令的意思,所以可能出現(xiàn)復(fù)制該篇博客腳本代碼后啟動(dòng)不了的問(wèn)題(把#和一些不應(yīng)該有的空格去掉應(yīng)該就可以了,有問(wèn)題可以評(píng)論滴我。)
我們項(xiàng)目的目錄是這樣:
/opt/webapps/financing/financing-api 在這個(gè)目錄下有如下配置。
接下來(lái)開(kāi)始講怎么通過(guò)systemctl啟動(dòng)springboot服務(wù)啟動(dòng)
1、首先進(jìn)入centos /etc/systemd/system/目錄
cd /etc/systemd/system/
2、新建一個(gè)springboot項(xiàng)目名.servie文件(我這里是financing-api項(xiàng)目,所以新建financing-api.service文件)
financing-api.service內(nèi)容如下
[Unit] #定義了服務(wù)的名稱、描述、依賴關(guān)系等信息。 Description=financing-api server After=network.target remote-fs.target nss-lookup.target [Service] #定義了服務(wù)的類型、用戶、工作目錄、啟動(dòng)命令等信息。 Type=forking User=root EnvironmentFile=/opt/webapps/financing/financing-api/config/financing-api.env #一定要有該env配置。具體env的目錄根據(jù)自己服務(wù)器實(shí)際部署情況來(lái)修改。 WorkingDirectory=/opt/webapps/financing/financing-api # ExecStartPre=/bin/sh -c 'if [ ! -d ${LOG_PATH} ]; then mkdir ${LOG_PATH}; fi'。#定義了在啟動(dòng)服務(wù)之前要執(zhí)行的命令。 ExecStart=/bin/sh -c '${JAVA_HOME}/java ${JVM_OPTIONS} -jar -Dloader.path=${APP_HOME}/lib ${REMOTE_DEBUG_OPTS} ${APP_HOME}/${JAR_NAME} > /dev/null 2>&1 &' #定義了啟動(dòng)服務(wù)的命令。 ExecReload=/bin/kill -s HUP $MAINPID #定義了重啟服務(wù)的命令 ExecStop=/bin/kill -s QUIT $MAINPID #定義了停止服務(wù)的命令 [Install] WantedBy=multi-user.target #定義了服務(wù)的啟動(dòng)方式。
3、進(jìn)入env所在的目錄,配置一個(gè)financing-api.env文件
financing-api.env內(nèi)容如下
JAR_NAME=financing-core-1.0.0.jar #指定jar包名 PROFILE=dev #指定配置文件的模式 PROJ_HOME=/opt/webapps/financing/financing-api #項(xiàng)目目錄 APP_HOME=$PROJ_HOME LOG_PATH=$PROJ_HOME/logs #日志目錄 GC_LOG_OPTS="-XX:+PrintGC -XX:+PrintGCDetails -Xloggc:/opt/webapps/financing/financing-api/logs/gc.log"#垃圾回收日志文件 GC_OPTS=-XX:+UseG1GC #垃圾回收類型 REMOTE_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 #遠(yuǎn)程斷點(diǎn)配置 默認(rèn)5005 OTHER_OPTS=-Dspring.profiles.active=dev #指定jar包啟動(dòng)的配置文件 JVM_OPTIONS="-server -Xms512m -Xmx512m $GC_OPTS $GC_LOG_OPTS $OTHER_OPTS" #這里的xms 和xmx根據(jù)自己服務(wù)器實(shí)際情況配置 JAVA_HOME=/usr/install/java/bin #服務(wù)器上java_home的目錄
4、部署啟動(dòng)腳本 start.sh,一般在jar包同目錄
#!/usr/bin/env bash # 執(zhí)行前需要加可執(zhí)行權(quán)限: chmod +x restart.sh systemctl restart financing-api echo "financing-api服務(wù)重啟完成." tail -200f logs/log_info.log
5、執(zhí)行啟動(dòng)腳本即可通過(guò) systemctl命令啟動(dòng)springboot服務(wù)
到此這篇關(guān)于centos7通過(guò)systemctl啟動(dòng)springboot服務(wù)代替java -jar方式啟動(dòng)的文章就介紹到這了,更多相關(guān)systemctl啟動(dòng)springboot服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中的synchronized?優(yōu)化方法之鎖膨脹機(jī)制
這篇文章主要介紹了Java中的synchronized?優(yōu)化方法之鎖膨脹機(jī)制,鎖膨脹機(jī)制是提升?synchronized?性能最有利的方法之一,下面我們就來(lái)看看什么事鎖膨脹及鎖膨脹的各種細(xì)節(jié)2022-05-05springboot 集成redis哨兵主從的實(shí)現(xiàn)
本文主要介紹了springboot 集成redis哨兵主從的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07EasyExcel自定義下拉注解的三種實(shí)現(xiàn)方式總結(jié)
使用EasyExcel設(shè)置下拉數(shù)據(jù)時(shí),每次都要?jiǎng)?chuàng)建一個(gè)SheetWriteHandler組件確實(shí)比較繁瑣,為了優(yōu)化這個(gè)過(guò)程,我們可以通過(guò)自定義注解來(lái)簡(jiǎn)化操作,下面就來(lái)看看具體實(shí)現(xiàn)方法吧2024-10-10java中@ConfigurationProperties失效的問(wèn)題解決
在Java開(kāi)發(fā)中,使用@ConfigurationProperties注解讀取配置文件時(shí),如果配置類中的屬性設(shè)置為static,將無(wú)法正確讀取配置值,本文就來(lái)介紹一下具體解決方法,感興趣的可以了解一下2024-09-09Javaweb動(dòng)態(tài)開(kāi)發(fā)最重要的Servlet詳解
動(dòng)態(tài)web的核心是Servlet,由tomcat解析并執(zhí)行,本質(zhì)是Java中的一個(gè)類(面向?qū)ο螅┻@個(gè)類的功能十分強(qiáng)大幾乎可以完成全部功能,在Java規(guī)范中只有Servlet實(shí)現(xiàn)類實(shí)例化的對(duì)象才能被瀏覽器訪問(wèn),所以掌握Servlet具有重要意義2022-08-08