diff --git a/kernel/model/conf.go b/kernel/model/conf.go index a1389eca5..c55415e1a 100644 --- a/kernel/model/conf.go +++ b/kernel/model/conf.go @@ -708,6 +708,7 @@ func clearWorkspaceTemp() { os.RemoveAll(filepath.Join(util.TempDir, "import")) os.RemoveAll(filepath.Join(util.TempDir, "repo")) os.RemoveAll(filepath.Join(util.TempDir, "os")) + os.RemoveAll(filepath.Join(util.TempDir, "blocktree.msgpack")) // v2.7.2 前旧版的块数数据 // 退出时自动删除超过 7 天的安装包 https://github.com/siyuan-note/siyuan/issues/6128 install := filepath.Join(util.TempDir, "install") diff --git a/kernel/model/process.go b/kernel/model/process.go index 983b742a3..3d68cb363 100644 --- a/kernel/model/process.go +++ b/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,15 +79,18 @@ 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 { - logging.LogInfof("no active UI proc, exit kernel process now") - Close(false, 1) + if 0 < noUIProcCount { + logging.LogInfof("no active UI proc count [%d]", noUIProcCount) + if 1 < noUIProcCount { + logging.LogInfof("confirmed no active UI proc, exit kernel process now") + Close(false, 1) + } } }