【发布时间】:2016-09-28 15:55:37
【问题描述】:
我这里有个小问题。 我有 nodejs 应用程序,它应该在操作系统的 bash 中以 root 权限运行命令,f.e.
命令是: echo "$password" | /usr/bin/sudo /usr/bin/abc --key "$username"
这是我的代码:
const spawn = require('child_process').spawn;
function sendMessage() {
let username = 'WhoLetTheDogsOut';
let password = 'Woof!';
const echo = spawn('echo', [ password ]);
const abc = spawn('sudo', [ `/usr/bin/abc --key ${username}` ]);
}
sendMessage();
请帮忙。阅读official Node child_process.spawn() doc 后,我没有找到错误的地方,而且我不断收到错误: gnokii stderr: sudo: /usr/bin/gnokii --sendsms +375293941196: 找不到命令
【问题讨论】:
-
你的意思是在
/usr/bin/abc --key ${username}周围有`?他们不应该是'。 -
@phreed template string literals
-
您的系统上是否安装了 gnokii gnokii.org/index.shtml?
-
我看不到您将“echo”的标准输出绑定到“abc”的标准输入的位置。
-
好的,我认为正在发生的事情是其中一个衍生进程失败(可能是 abc,因为密码未到达),然后 gnokii 由于其他一些不相关的原因而失败。您需要将来自 echo 的标准输出绑定到 abc 的标准输入。您还应该写出 echo 和 abc 中的错误并发布结果。 echo.stdout.on('data', (data) => { abc.stdin.write(data); });
标签: javascript node.js bash