spring boot 可以打包成可执行的脚本来启动,其原理是在打成包时,将shell脚本注入到jar包中
#参考:https://docs.spring.io/spring-boot/docs/1.5.3.RELEASE/reference/htmlsingle/#deployment-service
1. 项目的 pom.xml 需要配置 executable 为 true,例如
<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/app
sudo ln -s /usr/app/app-server.jar /etc/init.d/app-server
3. 创建自定义参数配置文件 usr/app/app-server.conf (可选)
echo -e "JAVA_HOME=/usr/java/jdk1.8.0_181 PID_FOLDER=/usr/app LOG_FOLDER=/usr/app " > /usr/app/app-server.conf
在 app-server.conf文件中,定义了JAVA_HOME,PID文件夹位置,日志文件夹位置,也可以根据实际情况添加其他配置。
JAVA_HOME=/usr/java/jdk1.8.0_181 PID_FOLDER=/usr/demo LOG_FOLDER=/usr/demo
4. 创建空的日志文件
echo '' > /usr/app/app-server.log
5. 授权
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. 运行服务
sudo service demo-server start
7. 其他服务命令说明
#查看服务状态 sudo service demo-server status #停止服务 sudo service demo-server stop #强制停止服务 sudo service demo-server force_stop #重启服务 sudo service demo-server restart