restart server with condition and timeout
This commit is contained in:
parent
f5f0da06d9
commit
0768b1b907
1 changed files with 20 additions and 16 deletions
|
@ -103,29 +103,33 @@ if (require('electron-squirrel-startup')) {
|
|||
function server() {
|
||||
const binary = app.isPackaged
|
||||
? path.join(process.resourcesPath, 'ollama')
|
||||
: path.resolve(process.cwd(), '..', 'ollama')
|
||||
: path.resolve(process.cwd(), '..', 'ollama');
|
||||
|
||||
const proc = spawn(binary, ['serve'])
|
||||
const proc = spawn(binary, ['serve']);
|
||||
|
||||
proc.stdout.on('data', data => {
|
||||
logger.info(data.toString().trim())
|
||||
})
|
||||
logger.info(data.toString().trim());
|
||||
});
|
||||
|
||||
proc.stderr.on('data', data => {
|
||||
logger.error(data.toString().trim())
|
||||
})
|
||||
logger.error(data.toString().trim());
|
||||
});
|
||||
|
||||
function restart() {
|
||||
logger.info('Restarting the server...')
|
||||
server()
|
||||
|
||||
proc.on('exit', (code, signal) => {
|
||||
if (code === 0 || code === null) {
|
||||
logger.info('Server has stopped.');
|
||||
setTimeout(server, 5000);
|
||||
} else {
|
||||
logger.error(`Server exited with code: ${code}, signal: ${signal}`);
|
||||
setTimeout(server, 3000);
|
||||
}
|
||||
|
||||
proc.on('exit', restart)
|
||||
});
|
||||
|
||||
app.on('before-quit', () => {
|
||||
proc.off('exit', restart)
|
||||
proc.kill()
|
||||
})
|
||||
proc.off('exit', server);
|
||||
proc.kill();
|
||||
});
|
||||
}
|
||||
|
||||
if (process.platform === 'darwin') {
|
||||
|
|
Loading…
Reference in a new issue