Ral*_*alf 34 javascript debian node.js raspberry-pi raspbian
我想在我的node.js服务器上运行一个shell脚本,但什么也没发生......
childProcess.exec('~/./play.sh /media/external/' + req.params.movie, function() {}); //not working
Run Code Online (Sandbox Code Playgroud)
另一个childProcess工作得很完美,但上面的过程不会.
childProcess.exec('ls /media/external/', movieCallback); //works
Run Code Online (Sandbox Code Playgroud)
如果我在终端中运行脚本,那么它可以工作.有任何想法吗?(chmod + x设置)
小智 58
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);
}
});
Run Code Online (Sandbox Code Playgroud)
exec('sh ~/play.sh /media/external/' + req.params.movie ,function(err,stdout,stderr){
console.log(err,stdout,stderr);
})
Run Code Online (Sandbox Code Playgroud)
play.sh
使用/media/external/
+ req.params.movie作为参数运行您的shellcript.输出可通过回调中的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
});`
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
59072 次 |
最近记录: |