Browse Source

:art: 桌面端内核进程根据 Electron 主进程判断是否自动退出 Fix https://github.com/siyuan-note/siyuan/issues/7002

Liang Ding 2 years ago
parent
commit
d752f006ca
2 changed files with 8 additions and 8 deletions
  1. 7 8
      app/electron/main.js
  2. 1 0
      kernel/model/process.go

+ 7 - 8
app/electron/main.js

@@ -53,10 +53,8 @@ try {
   }
   }
 } catch (e) {
 } catch (e) {
   console.error(e)
   console.error(e)
-  require('electron').
-    dialog.
-    showErrorBox('创建配置目录失败 Failed to create config directory',
-      '思源需要在用户家目录下创建配置文件夹(~/.config/siyuan),请确保该路径具有写入权限。\n\nSiYuan needs to create a configuration folder (~/.config/siyuan) in the user\'s home directory. Please make sure that the path has write permissions.')
+  require('electron').dialog.showErrorBox('创建配置目录失败 Failed to create config directory',
+    '思源需要在用户家目录下创建配置文件夹(~/.config/siyuan),请确保该路径具有写入权限。\n\nSiYuan needs to create a configuration folder (~/.config/siyuan) in the user\'s home directory. Please make sure that the path has write permissions.')
   app.exit()
   app.exit()
 }
 }
 
 
@@ -897,6 +895,7 @@ app.on('before-quit', (event) => {
 })
 })
 
 
 const {powerMonitor} = require('electron')
 const {powerMonitor} = require('electron')
+const {write} = require("fs");
 
 
 powerMonitor.on('suspend', () => {
 powerMonitor.on('suspend', () => {
   writeLog('system suspend')
   writeLog('system suspend')
@@ -934,11 +933,11 @@ powerMonitor.on('resume', async () => {
     return
     return
   }
   }
 
 
-  writeLog('sync after system resume')
   workspaces.forEach(item => {
   workspaces.forEach(item => {
     const currentURL = new URL(item.browserWindow.getURL())
     const currentURL = new URL(item.browserWindow.getURL())
-    fetch(getServer(currentURL.port) + '/api/sync/performSync',
-      {method: 'POST'})
+    const server = getServer(currentURL.port)
+    writeLog('sync after system resume [' + server + '/api/sync/performSync' + ']')
+    fetch(server + '/api/sync/performSync', {method: 'POST'})
   })
   })
 })
 })
 
 
@@ -946,6 +945,6 @@ powerMonitor.on('shutdown', () => {
   writeLog('system shutdown')
   writeLog('system shutdown')
   workspaces.forEach(item => {
   workspaces.forEach(item => {
     const currentURL = new URL(item.browserWindow.getURL())
     const currentURL = new URL(item.browserWindow.getURL())
-    fetch(getServer(currentURL.port)  + '/api/system/exit', {method: 'POST'})
+    fetch(getServer(currentURL.port) + '/api/system/exit', {method: 'POST'})
   })
   })
 })
 })

+ 1 - 0
kernel/model/process.go

@@ -42,6 +42,7 @@ func HookDesktopUIProc() {
 		return
 		return
 	}
 	}
 
 
+	time.Sleep(30 * time.Second)
 	uiProcNames := []string{"siyuan", "electron"}
 	uiProcNames := []string{"siyuan", "electron"}
 	existUIProc := false
 	existUIProc := false
 	for range time.Tick(7 * time.Second) {
 	for range time.Tick(7 * time.Second) {