在错误在亚马逊服务器上执行bash,bash是在正确的path

我正在使用Gith在亚马逊服务器上构build一个webhook服务器来自动部署。 当我更新我的存储库时,gith服务器可以接收更新,然后我想执行bash。 bash文件位于/home/ubuntu/node/githook/hook.sh,console.log(__ console.log(__dirname+'/hook.sh');的path上console.log(__dirname+'/hook.sh'); 输出正确的path,但是当使用execFile执行path时,它给出了一个错误

错误{ [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 ); }); } }); 

你必须让你的bash脚本可执行。 用这个 :

 chmod +x hook.sh