我按照本指南将我的 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?简单地创建链接如何假设安装应用程序?为什么我找不到单位?
这是 nginx 缓存需要删除才能更新。
rm -rd /var/cache/nginx/cache *
目前我像这样重新部署我的 Spring Boot 应用程序。总是有问题,但如果你检查,通常不难看出问题
/var/log/myApp.log