Node.JS Child_Process捕获密码提示

时间:2016-03-18 00:17:24

标签: javascript node.js

如何使用node.js child_process以编程方式允许我提供密码。

const spawn = require('child_process').spawn;
const ls = spawn('sudo ls');

ls.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});

ls.stderr.on('data', (data) => {
  console.log(`stderr: ${data}`);
});

ls.on('close', (code) => {
  console.log(`child process exited with code ${code}`);
});

以上引发了错误。我试图弄清楚我在哪里可以找到密码输入的位置,并通过环境变量提供。

我希望我能抓住Password检查以确保其说出然后传递密码。

1 个答案:

答案 0 :(得分:3)

错误是因为你错误地使用了spawn命令..它应该是:

const ls = spawn('sudo', ['ls']);

将子进程的参数指定为第二个参数(在数组中)。

然后你应该看到密码的提示,我想能够写入stdin输入密码(你根据你所说的内容,你想要从process.env传递密码)。

编辑:快速搜索SO似乎表明它可能不是那么直接并且在提示后写入stdin ..