Przeglądaj źródła

新增api重启系统(支持非windows)

修改
- server/api/v1/sys_system.go
- server/router/sys_system.go
songzhibin97 4 lat temu
rodzic
commit
f42e3a2441
2 zmienionych plików z 17 dodań i 6 usunięć
  1. 16 6
      server/api/v1/sys_system.go
  2. 1 0
      server/router/sys_system.go

+ 16 - 6
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

+ 1 - 0
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)       // 获取服务器信息
 	}
 }