spring boot 能夠打包成可執行的腳原本啓動,其原理是在打成包時,將shell腳本注入到jar包中html
#參考:https://docs.spring.io/spring-boot/docs/1.5.3.RELEASE/reference/htmlsingle/#deployment-servicejava
1. 項目的 pom.xml 須要配置 executable 爲 true,例如spring
<build> <finalName>demo-serverr</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <useSystemClassLoader>false</useSystemClassLoader> </configuration> </plugin> </plugins> </build>
2. 將項目打包,假設項目名稱爲 app-server.jar, 部署路徑是 /usr/appshell
sudo ln -s /usr/app/app-server.jar /etc/init.d/app-server
3. 建立自定義參數配置文件 usr/app/app-server.conf (可選)apache
echo -e "JAVA_HOME=/usr/java/jdk1.8.0_181\nPID_FOLDER=/usr/app\nLOG_FOLDER=/usr/app\n" > /usr/app/app-server.conf
在 app-server.conf文件中,定義了JAVA_HOME,PID文件夾位置,日誌文件夾位置,也能夠根據實際狀況添加其餘配置。app
JAVA_HOME=/usr/java/jdk1.8.0_181 PID_FOLDER=/usr/demo LOG_FOLDER=/usr/demo
4. 建立空的日誌文件maven
echo '' > /usr/app/app-server.log
5. 受權spring-boot
sudo chmod u+x /usr/demo/demo-server.jar sudo chmod u+r /usr/demo/demo-server.conf sudo chmod ug+rw /usr/demo/demo-server.log
6. 運行服務ui
sudo service demo-server start
7. 其餘服務命令說明spa
#查看服務狀態 sudo service demo-server status #中止服務 sudo service demo-server stop #強制中止服務 sudo service demo-server force_stop #重啓服務 sudo service demo-server restart