diff --git a/server/api/v1/sys_system.go b/server/api/v1/sys_system.go index d6a0fe8263ace390cf46aad85e568af3e1c9f7c4..7b4d7226507b888d6658d20f7dda552237a04d66 100644 --- a/server/api/v1/sys_system.go +++ b/server/api/v1/sys_system.go @@ -5,6 +5,11 @@ import ( "gin-vue-admin/model" "gin-vue-admin/model/response" "gin-vue-admin/service" + "os" + "os/exec" + "runtime" + "strconv" + "github.com/gin-gonic/gin" "go.uber.org/zap" ) @@ -42,7 +47,6 @@ func SetSystemConfig(c *gin.Context) { } } -// 本方法开发中 开发者windows系统 缺少linux系统所需的包 因此搁置 // @Tags System // @Summary 重启系统 // @Security ApiKeyAuth @@ -51,14 +55,20 @@ func SetSystemConfig(c *gin.Context) { // @Success 200 {string} string "{"success":true,"data":{},"msg":"重启系统成功"}" // @Router /system/ReloadSystem [post] func ReloadSystem(c *gin.Context) { - var sys model.System - _ = c.ShouldBindJSON(&sys) - if err := service.SetSystemConfig(sys); err != nil { + if runtime.GOOS == "windows" { + response.FailWithMessage("系统不支持", c) + return + } + pid := os.Getpid() + cmd := exec.Command("kill", "-1", strconv.Itoa(pid)) + err := cmd.Run() + if err != nil { global.GVA_LOG.Error("重启系统失败!", zap.Any("err", err)) response.FailWithMessage("重启系统失败", c) - } else { - response.OkWithMessage("重启系统成功", c) + return } + response.OkWithMessage("重启系统成功", c) + return } // @Tags System diff --git a/server/router/sys_system.go b/server/router/sys_system.go index d6c2e5a42c15090ef5cc0db2c6035b3a7fa42312..1bb3bc0d372f60fceff22df775b6cc3c0c26b7d7 100644 --- a/server/router/sys_system.go +++ b/server/router/sys_system.go @@ -12,5 +12,6 @@ func InitSystemRouter(Router *gin.RouterGroup) { SystemRouter.POST("getSystemConfig", v1.GetSystemConfig) // 获取配置文件内容 SystemRouter.POST("setSystemConfig", v1.SetSystemConfig) // 设置配置文件内容 SystemRouter.POST("getServerInfo", v1.GetServerInfo) // 获取服务器信息 + SystemRouter.POST("reloadSystem", v1.ReloadSystem) // 重启服务 } }