繁体   English   中英

使用node.js运行shell脚本(childProcess)

[英]Run shell script with node.js (childProcess)

我想在我的node.js服务器上运行一个shell脚本,但什么也没发生......

childProcess.exec('~/./play.sh /media/external/' + req.params.movie, function() {}); //not working

另一个childProcess工作得很完美,但上面的过程不会。

childProcess.exec('ls /media/external/', movieCallback); //works

如果我在终端中运行脚本,那么它可以工作。 有任何想法吗? (chmod + x设置)

exec函数回调有错误,stdout和stderr参数传递给它。 看看他们是否可以通过将它们吐出到控制台来帮助您诊断问题:

exec('~/./play.sh /media/external/' + req.params.movie,
  function (error, stdout, stderr) {
    console.log('stdout: ' + stdout);
    console.log('stderr: ' + stderr);
    if (error !== null) {
      console.log('exec error: ' + error);
    }
});
exec('sh ~/play.sh /media/external/' + req.params.movie ,function(err,stdout,stderr){
      console.log(err,stdout,stderr);
 })

使用/media/external/ + req.params.movi​​e作为参数运行play.sh shellscript。 输出可通过回调中的stdout,stderr变量获得。

或者尝试这个

var myscript = exec('sh ~/play.sh /media/external/' + req.params.movie);
myscript.stdout.on('data',function(data){
    console.log(data); // process output will be displayed here
});
myscript.stderr.on('data',function(data){
    console.log(data); // process error output will be displayed here
});`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM