如何获得root访问权限并使用电子主进程的磁盘使用率(du)?

时间:2020-01-14 15:35:57

标签: javascript node.js macos unix electron

我正在使用Electron

构建macOS应用程序

我尝试使用ipcMain和NodeJS的exec在主进程中运行以下命令。

// Traverse to a directory and use disk usage to check folder sizes
cd ~/Library/Caches && du -sh *

该命令也按照我想要的方式执行,但是会引发异常。

Uncaught Exception:
Error: Command failed: cd ~/Library/Caches && du -sh *
du: DEDUCTED: Operation not permitted

    at /Users/0x1ad2/Projects/DEDUCTED/node_modules/sudo-prompt/index.js:390:27
    at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:61:3)

我还尝试附加软件包sudo-prompt,以便该应用程序可以具有root用户访问权限。

到目前为止没有运气。

答案

    const exec = require("child_process").exec;
exec(
    `cd ~/Library/Caches && du -sh * && cd ${process.cwd()}`,
    (error, stdout, stderr) => {
        console.log(error);
        console.log(stdout);
        console.log(stderr);
    }
);

1 个答案:

答案 0 :(得分:1)

cd中的问题。模块sudo-prompt redirect stderror to file。只需尝试像此示例一样运行或添加命令以返回cd ~/Library/Caches && du -sh * && cd ${process.cwd()}

child_process.exec('push /etc\ndu -sh *\npopd', (error, stdout, stderr)=> console.log(stdout))

`

相关问题