From eea6c9468a229fdb9da3ee7a5073d1682f2ccf60 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Sat, 4 Feb 2023 14:58:19 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=94=B9=E8=BF=9B=E6=A1=8C=E9=9D=A2?= =?UTF-8?q?=E7=AB=AF=E7=9B=91=E6=8E=A7=E5=89=8D=E7=AB=AF=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E8=BF=9B=E7=A8=8B=E9=80=80=E5=87=BA=E9=92=A9=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/process.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/kernel/model/process.go b/kernel/model/process.go index 7b68f7439..88a725ce4 100644 --- a/kernel/model/process.go +++ b/kernel/model/process.go @@ -55,12 +55,15 @@ func HookDesktopUIProcJob() { } if 0 < util.CountSessions() { + // 如果存在活动的会话则说明 UI 进程还在运行 return } uiProcNames := []string{"siyuan", "electron"} uiProcessCount := 0 util.UIProcessIDs.Range(func(uiProcIDArg, _ interface{}) bool { + // 从 UI 进程 ID 列表中找到 UI 进程 + uiProcessCount++ uiProcID, err := strconv.Atoi(uiProcIDArg.(string)) if nil != err { @@ -89,8 +92,24 @@ func HookDesktopUIProcJob() { } return true }) + if 1 > uiProcessCount { - noUIProcCount++ + // 如果 UI 进程 ID 列表中没有找到 UI 进程则从完整的进程列表中找 + procs, _ := goPS.Processes() + for _, proc := range procs { + procName := strings.ToLower(proc.Executable()) + uiProcOk := false + for _, name := range uiProcNames { + uiProcOk = strings.Contains(procName, name) + } + if uiProcOk { + uiProcessCount++ + } + } + + if 1 > uiProcessCount { + noUIProcCount++ + } } if 0 < noUIProcCount {