electron 渲染过程崩溃后的电子恢复

b1uwtaje  于 2023-04-03  发布在  Electron
关注(0)|答案(2)|浏览(442)

我正在构建一个电子应用程序,如果发生崩溃,必须重新加载渲染过程窗口。
目前我可以从主进程重启应用

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

但我无法检测到窗口崩溃。我尝试使用

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

但是当我使进程崩溃时,事件并没有生成。
我尝试的进程崩溃:

  • 调用process.crash()
  • 使用所有可用的内存。

这两种方法都成功地使进程崩溃,但同样,我无法找到检测它的方法。
我还尝试在渲染进程中使用window.onerror(...),并在检测到崩溃时通过IPC向主进程发送消息,但这似乎不起作用。

6jjcrrmo

6jjcrrmo1#

您应该在webContents中查找“crashed”事件。请查看https://electronjs.org/docs/api/web-contents#event-crashed
例如,在main process中添加如下内容:

win.webContents.on('crashed', (e) => {
    app.relaunch();
    app.quit()
});
shstlldc

shstlldc2#

也许看看“pm2-windows-service”,它可以将您的应用程序安装为windows服务,并观察它是否崩溃,重新启动它
https://www.npmjs.com/package/pm2-windows-service
电子也有应用程序。**setLoginItemSettings({ openAtLogin:true });**但这并不防止崩溃,只提供在Windows登录时自动启动应用程序

相关问题