javascript
每日一博 - Spring Boot Application as a Service
文章目錄
- 老路子
- 操作步驟
- 打包插件增加executable true
- 構建應用
- System V Init
- 開機啟動Systemd
- 自定義JVM參數
老路子
在Linux服務器上啟動Spring Boot項目,都是通過nohup java -jar xxx 命令讓程序作為后臺進程執行的, 這… 也不錯,但更好的方法是將Spring Boot作為Service啟動
操作步驟
打包插件增加executable true
<packaging>jar</packaging><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.0.RELEASE</version> </parent><dependencies>.... </dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><executable>true</executable></configuration></plugin></plugins> </build>關鍵點說明
<packaging>jar</packaging> <configuration><executable>true</executable></configuration>標示該jar為可執行,否則啟動Spring Boot服務會報錯.
gradle構建的SpringBoot項目,則相應地需要增加如下配置
bootJar {launchScript() }構建應用
$ mvn clean package在應用程序的根目錄中運行以下命令:
$ java -jar your-app.jar此時,我們仍然需要使用-jar選項調用 Java 解釋器。
為了增強安全性,我們首先創建一個特定用戶artisan來運行服務并相應地更改可執行 JAR 文件的權限:
$ sudo useradd artisan $ sudo passwd artisan $ sudo chown artisan:artisan your-app.jar $ sudo chmod 500 your-app.jar一定要給jar包賦可執行權限
System V Init
sudo ln -s /path/to/your-app.jar /etc/init.d/your-app上面的命令創建了一個指向可執行 JAR 文件的符號鏈接。您必須使用可執行 JAR 文件的完整路徑,否則符號鏈接將無法正常工作。此鏈接使您能夠將應用程序作為服務啟動:
$ sudo service your-app start該腳本支持標準的服務啟動、停止、重啟和狀態命令。而且:
- 它啟動在我們剛剛創建的用戶artisan下運行的服務
- 它在/var/run/your-app/your-app.pid 中跟蹤應用程序的進程 ID
- 它將控制臺日志寫入/var/log/your-app.log,可能需要檢查一下,以防應用程序無法正常啟動
開機啟動Systemd
首先,我們使用以下示例創建一個名為your-app.service的腳本并將其放在/etc/systemd/system目錄中:
[Unit] Description=A Spring Boot application After=syslog.target[Service] User=baeldung ExecStart=/path/to/your-app.jar SuccessExitStatus=143 [Install] WantedBy=multi-user.target請記住修改Description、User和ExecStart字段以匹配應用程序。此時應該能夠執行上述標準服務命令。
自定義JVM參數
只需在jar包所在的同級目錄下添加與jar包同名的配置文件,比如添加一個叫coder-xiaoming.conf的配置文件(名字要和jar的名字相同哦),然后在文件里面自定義JVM參數JAVA_OPTS:
export JAVA_OPTS="-Xmx256m -Xms256m"總結
以上是生活随笔為你收集整理的每日一博 - Spring Boot Application as a Service的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每日一博 - tcpdump小技巧
- 下一篇: 每日一博 - DelayQueue阻塞队