Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Electron recovery after crash on render process

I'm building an electron app that must reload the render process window if a crash happens.

Currently I can restart the app from the main process

app.relaunch();
app.quit();

But I cannot detect the window crashing. I tried using the

win.on('unresponsive', () => { ... } );

But the event is not getting generated when I crash the process.

To crash the process I tried:

  • invoking the process.crash()
  • using all the available memory.

Both ways successfully crash the process but again, I cannot find a way to detect it.

I tried also using, from the render process, the window.onerror(...) and sending via IPC to the main process a message when the crash is detected, but this seems not to work as well.

like image 255
Carlinho89 Avatar asked Aug 28 '17 12:08

Carlinho89


1 Answers

You should be looking for the 'crashed' event in webContents. Check https://electronjs.org/docs/api/web-contents#event-crashed

For example put something like this in main process:

win.webContents.on('crashed', (e) => {
    app.relaunch();
    app.quit()
});
like image 186
hristovsn Avatar answered Sep 30 '22 14:09

hristovsn