在Electron中获取渲染器进程ID

时间:2017-05-15 22:13:31

标签: javascript node.js electron chromium

在Electron中,渲染器进程的pid由

公开
processId = require('remote').getCurrentWindow().getProcessId()
但是,

在最近的版本(1.4.x,1.5.x,1.6.x)中不再有效。

有没有其他方法可以获取渲染器进程的pid,即Windows的pid?

3 个答案:

答案 0 :(得分:3)

奇怪的是,在Darwin或Linux Mint上,使用Electron 1.6.7,

require('electron').remote.getCurrentWebContents().getProcessId()

返回3,对于有效的进程ID,它似乎很小。

但是,从渲染器进程

process.pid

返回正确的渲染器进程ID,

require('electron').remote.process.pid

返回正确的主进程ID。

这可以通过使用Darwin上的Activity Monitor应用程序或Linux Mint上的System Monitor应用程序来确认。

答案 1 :(得分:3)

获取渲染器的OS pid(不是路由ID)的方法getOSProcessId()已添加到Electron v1.7.1。这是原始pull request

require('electron').remote.getCurrentWebContents().getOSProcessId();

答案 2 :(得分:1)

The following slightly modified version works for me

require('electron').remote.getCurrentWebContents().getProcessId()

Example:

const { app, BrowserWindow } = require('electron')

app.once('ready', () => {
  var br = new BrowserWindow()
  br.once('focus', () => {
    br.webContents.openDevTools({detach:true})
    br.webContents.executeJavaScript(`
      const remote = require('electron').remote
      console.log(remote.getCurrentWebContents().getProcessId())
    `)
  })
  br.loadURL('http://google.com')
})

Tested on 1.4.13