Centos-Springboot項目jar包自啟動


CentOS環境下部署Springboot項目的jar包開機自啟動。

部署環境

  • Centos 7.5
  • Springboot 2.1.x

操作步驟

修改pom

在pom.xml文件中<plugin>標簽中添加以下代碼:

<plugin>                          
	<groupId>org.springframework.boot</groupId>    
	<artifactId>spring-boot-maven-plugin</artifactId>    
	<configuration>       
		<executable>true</executable>    
	</configuration>
</plugin>

主要是executable這個標簽

賦予jar包權限

$ chmod a+x /home/demo/demo-1.0.0.1.jar

注釋:

a+x 是給所有人加上可執行權限,包括所有者,所屬組,和其他人

創建jar包的軟連接

$ ln -s /home/demo/demo-1.0.0.1.jar /etc/init.d/demo

注釋:

  • demo即為自定義的服務名稱
  • 刪除軟連接可以使用 rm -rf /etc/init.d/demo

鏈接jdk下的java到sbin目錄下

$ ln -s ${JAVA_HOME}/bin/java /sbin/java

注釋:

  • 非綠色版本的jdk可以忽略該步驟
  • 不執行上述的命令,在啟動服務時會出現java找不到的問題

創建conf文件

在jar包的同級目錄下創建和jar包名字完全相同,后綴為conf的文件,如jar包為demo-1.0.0.1.jar,先切換到jar包所在目錄:

$ vim demo-1.0.0.1.conf

在創建的文件中輸入以下內容:

APP_NAME=demo
MODE=service #后台運行
JAVA_HOME=/usr/java/jdk1.8.0_191  #注:非綠色版可忽略
JAVA_OPTS="-server -Xms4G -Xmx4G -XX:+UseG1GC -Dfile.encoding=utf-8"
RUN_ARGS="--server.port=80 --spring.profiles.active=prod"
LOG_FOLDER=/home/demo
LOG_NAME=demo.log

注釋:

  • LOG_FOLDER,就是日志的存儲位置必須是已經存在,否則啟動報錯

  • conf文件配置參數官網地址

添加開機啟動

$ chkconfig demo on

$ service demo start

// 或者使用下面的命令

$ systemctl enable demo

$ systemctl start demo

重啟驗證是否可用:

$ reboot

$ jps

移除開機自啟動

$ service demo stop


$ chkconfig demo off

//或者使用下面的命令

$ systemctl disable demo

$ systemctl stop demo

問題處理

生成的demo.log文件特別大,導致服務器存儲被沾滿,從而影響整個服務器的運行。

解決方案:

  • 指定demo.log文件位置,不指定的話默認在/var/log目錄下
  • 使用logback日志時,生產環境一定要將console去掉,不然會導致demo.log越來越大
<!-- 4.2 生產環境:輸出到文檔 -->
<springProfile name="prod">
	<root level="info">
		<!-- 生產環境注釋掉,不然生成的.log文件太大,導致磁盤占用過多 -->
		<!-- <appender-ref ref="CONSOLE" /> -->
		<appender-ref ref="LOG_FILE" />
		<appender-ref ref="ERROR_FILE" />
	</root>
</springProfile>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM