电子子进程sudo密码提示不管道到stdout

时间:2017-12-15 16:38:50

标签: javascript node.js bash electron

在我的电子应用程序中,我试图运行一个执行sudo命令的bash脚本。虽然我能够毫无问题地将脚本作为sudo执行,但这不是一个选项,因为脚本需要首先执行非特权事物。

const { spawn } = require('child-process-promise');    
var promise = spawn('bash', ['/Users/me/Desktop/test.sh']);

var childProcess = promise.childProcess;
childProcess.stdout.on('data', function (data) {
    console.log('[spawn] stdout: ', data.toString());
});
childProcess.stderr.on('data', function (data) {
    console.log('[spawn] stderr: ', data.toString());
});

promise.then(function () {
        console.log('[spawn] done!');
    })
    .catch(function (err) {
        console.error('[spawn] ERROR: ', err);
    });

test.sh

echo 'test 1'
sudo echo 'test 2'
sudo -k

运行此命令将生成:

[spawn] stdout:test 1

在我的电子应用程序控制台中。但是,提示:

密码:

出现在电子处理终端壳中。

有没有办法让这个密码提示发送电子浏览器而不是主终端?

0 个答案:

没有答案