javascript - 如何从 Electron 的主进程中获得根访问权限并使用磁盘使用量(du)?

标签 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);
    }
);

最佳答案

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))

`

关于javascript - 如何从 Electron 的主进程中获得根访问权限并使用磁盘使用量(du)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59737073/

相关文章:

javascript - String.match() 函数即使匹配也返回 null

java - 构建 dmg 文件时出现 BUILD FAILED 错误

xcode - 多个命令为一个的 LLDB 别名

python - Mac OS Lion 上的 cx_Oracle

javascript - 如何在 CodeIgniter 中集成 CKFinder 和 CKEditor?

javascript - 如何检测元素的点击

javascript - 如何使用 node.js 和 redis Laravel 5 监听事件

javascript - 无法获取/用户/测试nodejs

javascript - Express.js 和 Node.js 中的 app.post() 出现错误

javascript - AngularJS 自定义过滤器调用 2 次