2013-11-20 37 views
1

我正在使用gith在亞馬遜服務器上構建一個webhook服務器來自動部署。當我更新我的存儲庫時,gith服務器可以接收更新,然後我想執行bash。 bash的文件是/home/ubuntu/node/githook/hook.sh的道路上,console.log(__dirname+'/hook.sh');輸出正確的路徑,但使用的execfile執行路徑時,它給了一個錯誤在亞馬遜服務器上執行bash時出現錯誤[錯誤:產生EACCES],bash在正確的路徑

錯誤{ [Error: spawn EACCES] code: 'EACCES', errno: 'EACCES', syscall: 'spawn' }

代碼在上面,但不知道爲什麼執行代碼給了我這樣的錯誤。

var gith = require('gith').create(8080); 
var execFile = require('child_process').execFile; 
gith({ 
    repo: 'heroku/node-js-sample' 
}).on('all', function(payload) { 
    if(payload.branch === 'master') 
    { 
     //console.log('all',payload); 
     console.log(__dirname+'/hook.sh'); 
     execFile(__dirname+'/hook.sh', function(error, stdout, stderr) { 
        // Log success in some manner 
      if(error) console.log("error",error); 
      else console.log('exec complete',stdout); 
     });  
    } 
}); 
+0

是hook.sh可執行文件嗎?如果不是用'chmod + x hook.sh'做出來的, – user568109

+0

謝謝,這是真的。我是linux新手,所以我不知道要給bash許可。你能回答嗎,所以我可以批准你的答案 – user824624

回答

3

你必須讓你的bash腳本可執行。使用這個:

chmod +x hook.sh 
相關問題