直到最近,它都运行良好,但是当我今天尝试使用它时,它无法正常运行。它返回以下错误:
错误:命令失败:/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});
});
如果有人有任何帮助,请提前致谢。
尼尔
我想到两件事:
1)确保您尝试执行的脚本是可执行的,例如:chmod +x /folder/script
2) 许多系统上的默认终端 shellLinux
分布是bash
。您显示的错误包括使用/bin/sh -c
,这在许多情况下都会默认Linux
分配给dash
(是的,不同的默认值shell
对于终端和在没有终端的情况下运行脚本)。因此,由于它似乎适用于bash
,尝试调用脚本bash -c /folder/script
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)