Browse Source

enhance(upgrader): restart main proc manually and gracefully

Jacky 9 months ago
parent
commit
e72e8cef57
3 changed files with 7 additions and 12 deletions
  1. 1 1
      api/system/upgrade.go
  2. 4 0
      internal/upgrader/upgrade.go
  3. 2 11
      main.go

+ 1 - 1
api/system/upgrade.go

@@ -139,7 +139,7 @@ func PerformCoreUpgrade(c *gin.Context) {
 		return
 	}
 
-	// bye, overseer will restart nginx-ui
+	// bye, will restart nginx-ui in performCoreUpgrade
 	err = u.PerformCoreUpgrade(tarName)
 	if err != nil {
 		_ = ws.WriteJSON(CoreUpgradeResp{

+ 4 - 0
internal/upgrader/upgrade.go

@@ -7,6 +7,7 @@ import (
 	"github.com/0xJacky/Nginx-UI/internal/helper"
 	"github.com/0xJacky/Nginx-UI/internal/logger"
 	"github.com/0xJacky/Nginx-UI/settings"
+	"github.com/jpillora/overseer"
 	"github.com/minio/selfupdate"
 	"github.com/pkg/errors"
 	"io"
@@ -252,5 +253,8 @@ func (u *Upgrader) PerformCoreUpgrade(tarPath string) (err error) {
 		return err
 	}
 
+	// gracefully restart
+	overseer.Restart()
+
 	return
 }

+ 2 - 11
main.go

@@ -6,14 +6,12 @@ import (
 	"github.com/0xJacky/Nginx-UI/internal/kernal"
 	"github.com/0xJacky/Nginx-UI/internal/logger"
 	"github.com/0xJacky/Nginx-UI/internal/nginx"
-	"github.com/0xJacky/Nginx-UI/internal/upgrader"
 	"github.com/0xJacky/Nginx-UI/router"
 	"github.com/0xJacky/Nginx-UI/settings"
 	"github.com/gin-gonic/gin"
 	"github.com/jpillora/overseer"
-	"github.com/jpillora/overseer/fetcher"
-	"log"
 	"net/http"
+	"time"
 )
 
 func Program(state overseer.State) {
@@ -42,16 +40,9 @@ func main() {
 
 	gin.SetMode(settings.ServerSettings.RunMode)
 
-	r, err := upgrader.GetRuntimeInfo()
-
-	if err != nil {
-		log.Fatalln(err)
-	}
-
 	overseer.Run(overseer.Config{
 		Program:          Program,
 		Address:          fmt.Sprintf("%s:%s", settings.ServerSettings.HttpHost, settings.ServerSettings.HttpPort),
-		Fetcher:          &fetcher.File{Path: r.ExPath},
-		TerminateTimeout: 0,
+		TerminateTimeout: 5 * time.Second,
 	})
 }