簡體   English   中英

節點執行者無權執行腳本

[英]Node exec doesn't have permission to execute script

直到最近,它仍然可以正常工作,但是當我今天嘗試使用它時,它並不能正常工作。 它返回以下錯誤:

錯誤:命令失敗:/ 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可以完美執行。

這是我嘗試執行腳本的代碼。 (index.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)在許多Linux發行版中,默認的終端外殼是bash 您顯示的錯誤包括使用/bin/sh -c ,在許多Linux發行版中,默認情況是- dash (是的,終端和不具有終端的運行腳本使用不同的默認shell )。 因此,由於它似乎可以在bash工作,因此請嘗試使用bash -c /folder/script調用bash -c /folder/script

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM