瀏覽代碼

:art: 改进桌面端监控前端界面进程退出钩子

Liang Ding 2 年之前
父節點
當前提交
88c478dc72
共有 1 個文件被更改,包括 6 次插入4 次删除
  1. 6 4
      kernel/model/process.go

+ 6 - 4
kernel/model/process.go

@@ -37,7 +37,10 @@ func HandleSignal() {
 	Close(false, 1)
 }
 
-var firstRunHookDesktopUIProcJob = true
+var (
+	firstRunHookDesktopUIProcJob = true
+	noUIProcCount                int
+)
 
 func HookDesktopUIProcJob() {
 	if util.ContainerStd != util.Container || "dev" == util.Mode {
@@ -56,7 +59,6 @@ func HookDesktopUIProcJob() {
 	}
 
 	uiProcNames := []string{"siyuan", "electron"}
-	existUIProc := false
 	util.UIProcessIDs.Range(func(uiProcIDArg, _ interface{}) bool {
 		uiProcID, err := strconv.Atoi(uiProcIDArg.(string))
 		if nil != err {
@@ -77,14 +79,14 @@ func HookDesktopUIProcJob() {
 		procName := strings.ToLower(proc.Executable())
 		for _, name := range uiProcNames {
 			if strings.Contains(procName, name) {
-				existUIProc = true
+				noUIProcCount++
 				return false
 			}
 		}
 		return true
 	})
 
-	if !existUIProc {
+	if 1 < noUIProcCount {
 		logging.LogInfof("no active UI proc, exit kernel process now")
 		Close(false, 1)
 	}