Electron - 如何从所有电子 pids 获取进程 argv

Electron - How to get process argv from all electron pids

我有一个带有多个浏览器窗口的电子应用程序。
为了我自己的帮助,我用额外的参数生成它们(例如:'--renderer-mode="second-window"')。

现在我想收集我当前电子过程的度量数据。
我从我的一个渲染器调用的主进程中已经有一个 IPC 接口。

ipcMain.handle('app-metrics', (event, message) => {
    return new Promise((resolve) => {
        const appMetrics = app.getAppMetrics()
        resolve(appMetrics)
    })
})

这里我想添加我的应用程序进程中的所有 argv。
我不知道如何获取此功能中的信息。我只知道 process.argv 的方式,但我如何从所有子进程收集这些信息并将其与我的 appMetrics 数组捆绑在一起?

我用另一种方式解决了我的问题。我的目标是显示“进程”类型(而不是度量数据中已经存在的铬类型)。

我正在收集我已知的 PID,并将它们硬编码为特定类型。接下来是将此信息添加到度量对象中。这是我的结果:

ipcMain.handle('app-metrics', (event, message) => {
    return new Promise((resolve) => {
        const pids = [
            {
                name: 'main-process',
                pid: process.pid
            },
            {
                name: 'app-gui',
                pid: this.win.webContents.getOSProcessId()
            },
            {
                name: 'popup-gui',
                pid: this.winPopup.webContents.getOSProcessId()
            }
        ]

        const appMetrics = app.getAppMetrics().map((metric) => {
            const pidType = pids.filter((e) => e.pid === metric.pid)
            if (pidType.length > 0) {
                return {
                    ...metric,
                    appType: pidType[0].name
                }
            }
            return {
                ...metric,
                appType: ''
            }
        })
        resolve(appMetrics)
    })
})

如果有更简单、更智能的方法,我很高兴听到。 :)