mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-20 08:30:12 +01:00
This commit is contained in:
parent
6b4a6bd7d3
commit
fdd6424259
1 changed files with 32 additions and 33 deletions
|
|
@ -364,36 +364,6 @@ const boot = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const initKernel = (workspace, lang) => {
|
const initKernel = (workspace, lang) => {
|
||||||
const getKernelPort = async () => {
|
|
||||||
// TODO if (isDevEnv) {
|
|
||||||
// writeLog("got kernel port [" + kernelPort + "]")
|
|
||||||
// return kernelPort
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 改进桌面端拉起内核 https://github.com/siyuan-note/siyuan/issues/6894
|
|
||||||
const getAvailablePort = (port = kernelPort) => {
|
|
||||||
// https://gist.github.com/mikeal/1840641
|
|
||||||
let tryGetPortCount = 0
|
|
||||||
const server = net.createServer()
|
|
||||||
return new Promise((resolve, reject) => server.on('error', error => {
|
|
||||||
writeLog(error)
|
|
||||||
if (2048 < ++tryGetPortCount) {
|
|
||||||
writeLog('failed to get available port [tryCount=' + tryGetPortCount +
|
|
||||||
', port=' + port + ']')
|
|
||||||
reject(error)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
server.listen(++port)
|
|
||||||
}).on('listening', () => {
|
|
||||||
writeLog('found an available port [' + port + ']')
|
|
||||||
server.close(() => resolve(port))
|
|
||||||
}).listen(port, '127.0.0.1'))
|
|
||||||
}
|
|
||||||
|
|
||||||
kernelPort = await getAvailablePort()
|
|
||||||
writeLog('got kernel available port [' + kernelPort + ']')
|
|
||||||
return kernelPort
|
|
||||||
}
|
|
||||||
return new Promise(async (resolve) => {
|
return new Promise(async (resolve) => {
|
||||||
bootWindow = new BrowserWindow({
|
bootWindow = new BrowserWindow({
|
||||||
width: screen.getPrimaryDisplay().size.width / 2,
|
width: screen.getPrimaryDisplay().size.width / 2,
|
||||||
|
|
@ -417,9 +387,37 @@ const initKernel = (workspace, lang) => {
|
||||||
resolve(false)
|
resolve(false)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
// 改进桌面端拉起内核 https://github.com/siyuan-note/siyuan/issues/6894
|
||||||
|
const getAvailablePort = (port) => {
|
||||||
|
// https://gist.github.com/mikeal/1840641
|
||||||
|
let tryGetPortCount = 0
|
||||||
|
const server = net.createServer()
|
||||||
|
return new Promise((resolve, reject) => server.on('error', error => {
|
||||||
|
writeLog(error)
|
||||||
|
if (2048 < ++tryGetPortCount) {
|
||||||
|
writeLog('failed to get available port [tryCount=' + tryGetPortCount +
|
||||||
|
', port=' + port + ']')
|
||||||
|
reject()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
server.listen(++port)
|
||||||
|
}).on('listening', () => {
|
||||||
|
writeLog('got kernel port [' + port + ']')
|
||||||
|
server.close(() => resolve(port))
|
||||||
|
}).listen(port, '127.0.0.1'))
|
||||||
|
}
|
||||||
|
|
||||||
const availablePort = await getKernelPort()
|
if (isDevEnv) {
|
||||||
const cmds = ['--port', availablePort, '--wd', appDir]
|
writeLog('got kernel port [' + kernelPort + ']')
|
||||||
|
} else {
|
||||||
|
kernelPort = await getAvailablePort(kernelPort)
|
||||||
|
}
|
||||||
|
if (!kernelPort) {
|
||||||
|
bootWindow.destroy()
|
||||||
|
resolve(false)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const cmds = ['--port', kernelPort, '--wd', appDir]
|
||||||
// TODO if (isDevEnv) {
|
// TODO if (isDevEnv) {
|
||||||
// cmds.push('--mode', 'dev')
|
// cmds.push('--mode', 'dev')
|
||||||
// }
|
// }
|
||||||
|
|
@ -444,7 +442,8 @@ const initKernel = (workspace, lang) => {
|
||||||
writeLog('booted kernel process [pid=' + kernelProcessPid + ']')
|
writeLog('booted kernel process [pid=' + kernelProcessPid + ']')
|
||||||
|
|
||||||
kernelProcess.on('close', (code) => {
|
kernelProcess.on('close', (code) => {
|
||||||
writeLog(`kernel [pid=${kernelProcessPid}, port=${availablePort}] exited with code [${code}]`)
|
writeLog(
|
||||||
|
`kernel [pid=${kernelProcessPid}, port=${kernelPort}] exited with code [${code}]`)
|
||||||
if (0 !== code) {
|
if (0 !== code) {
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case 20:
|
case 20:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue