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);
});
}
});
是hook.sh可執行文件嗎?如果不是用'chmod + x hook.sh'做出來的, – user568109
謝謝,這是真的。我是linux新手,所以我不知道要給bash許可。你能回答嗎,所以我可以批准你的答案 – user824624