enhance(upgrader): restart main proc manually and gracefully

This commit is contained in:
Jacky 2024-07-27 10:59:23 +08:00
parent 31bbab71c9
commit e72e8cef57
No known key found for this signature in database
GPG key ID: 215C21B10DF38B4D
3 changed files with 7 additions and 12 deletions

View file

@ -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{

View file

@ -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
}

13
main.go
View file

@ -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,
})
}