ifc*_*fig 5 javascript linux node.js raspberry-pi3
直到最近,它运行良好,但是当我今天尝试使用它时,它无法正常工作。它返回以下错误:
错误:命令失败:/bin/sh -c /home/pi/RPi-Computer-Power/RPi-Server/routes/../scripts/hash.js 12345678 /bin/sh: 1: /home/pi/RPi -Computer-Power/RPi-Server/routes/../scripts/hash.js:权限被拒绝
我非常困惑,因为当我尝试从命令行运行脚本时,它运行良好;/home/pi/RPi-Computer-Power/RPi-Server/routes/../scripts/hash.js 12345完美执行。
这是我尝试执行脚本的代码。(索引.js)
exec(__dirname+"/../scripts/"+req.params.script+" "+req.body.params, function(err, stdout, stderr) {
console.log("err: ",err,"stdout: ",stdout,"stderr: ",stderr);
if(err){
res.send("<a href='/'>< Back</a> <b>Program Error:</b> "+err.toString());
return;
}
//res.send("<a href='/'>< Back</a> <b>Program Output:</b> <div style='white-space:pre-line>'"+stdout+stderr+"</div>");
res.render("programOutput", {output: stdout});
});
Run Code Online (Sandbox Code Playgroud)
如果有人有任何帮助,请提前致谢。尼尔
想到两件事:
1)确保您尝试执行的脚本是可执行的,例如: chmod +x /folder/script
2) 许多Linux发行版的默认终端 shell是bash. 您显示的错误包括 using /bin/sh -c,它在许多Linux发行版中dash默认shell为(是的,终端和在没有终端的情况下运行脚本的默认值不同)。因此,由于它似乎适用于bash,请尝试使用 来唤起脚本bash -c /folder/script。
| 归档时间: |
|
| 查看次数: |
6413 次 |
| 最近记录: |