![重新部署 Spring Boot 应用程序 init.d 服务](https://linux22.com/image/164901/%E9%87%8D%E6%96%B0%E9%83%A8%E7%BD%B2%20Spring%20Boot%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%20init.d%20%E6%9C%8D%E5%8A%A1.png)
我按照本指南将 Spring Boot 应用程序设置为 init.d 服务。 https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html#deployment-initd-service 我的网站工作正常,但是当我尝试部署一些新的更改时却没有更新。这就是我尝试重新部署的方式:
$ ~/deploy.sh
#!/bin/bash
rm -rd /var/myapp/target
rm -rd /etc/init.d/myapp
git --git-dir=/var/myapp/.git pull
sudo systemctl stop myapp
mvn clean package
rm -rd /etc/init.d/myapp
ln -s /var/myapp/target/myapp-0.1.0.jar /etc/init.d/myapp
systemctl daemon-reload
systemctl start myapp
systemctl status myapp
我检查了我的 jar 是否有最新的代码,但它仍然不会更新。我又玩了一些,我想我删除了一些 init.d 文件,现在它根本不起作用并给出了这个错误。
$ sudo ln -s /var/myapp/target/myapp-0.1.0.jar /etc/init.d/myapp
ln: failed to create symbolic link ‘/etc/init.d/myapp’: File exists
$ sudo systemctl start whatthephil
Failed to start myapp.service: Unit not found.
Spring 指南说创建链接会安装应用程序,但它没有正确执行。我在 /var/logs/myapp 中没有收到任何日志。我曾经在那里看到过日志。为什么要寻找 myapp.service?简单地创建一个链接如何安装应用程序?为什么我找不到单位?
答案1
需要删除 nginx 缓存才能更新。
rm -rd /var/cache/nginx/cache *
目前我像这样重新部署我的 Spring Boot 应用程序。总会出问题的,但是如果你检查的话通常不难发现问题/var/log/myApp.log
service myApp stop
rm -rd /etc/init.d/myApp //careful backup home dir first
rm -rd /var/cache/nginx/cache *
git --git-dir=/var/myApp/.git pull
mvn clean package -f /var/myApp/pom.xml
ln -s /var/myApp/target/gs-serving-web-content-0.1.0.jar /etc/init.d/myApp
service myApp start
service myApp status
certbot