Centos

重新部署 Spring Boot 應用程序 init.d 服務

  • June 5, 2020

我按照本指南將我的 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

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

引用自:https://unix.stackexchange.com/questions/555013