在我的电子应用程序中,我试图运行一个执行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
在我的电子应用程序控制台中。但是,提示:
密码:
出现在电子处理终端壳中。
有没有办法让这个密码提示发送电子浏览器而不是主终端?