2016-09-28 99 views
0

这里有一点问题。 我有nodejs应用程序,应该在操作系统的bash中以root权限f.e运行命令。在nodejs里执行bash命令(有root权限)app

命令是: echo“$ password”|在/ usr /斌/须藤的/ usr/bin中/ ABC --key “$用户名”

这里是我的代码:

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标准错误:命令:在/ usr/bin中/ gnokii --sendsms 375293941196:找不到命令

+0

你的意思是有''周围的/ usr/bin中/ ABC --key $ {用户名}'?他们不应该是'。 – phreed

+0

@phreed [模板字符串文字](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals) – ASDFGerte

+0

您是否已经安装了gnokii http://gnokii.org/index.shtml系统? – phreed

回答

2

希望这会帮助你,是一个NPM的“node-cmd”包,你可以在bash中用nodejs运行命令,下面是一个例子:

var cmd = require('node-cmd');

cmd.get('echo '+password+' | /usr/bin/sudo /usr/bin/abc --key '+username, 
    function(data){ 
     console.log('The result of the command:'+data) 
    } 
); 

记住给予文件permisions(chmod),并在需要时像root一样运行进程。

这是源https://www.npmjs.com/package/node-cmd

+0

我会尝试它并稍后发布结果。谢谢! –

+0

非常感谢,它的工作原理! –