execFile Node.js – 找不到Shell脚本
我试图使用node.js和Github webhooks自动部署我的项目。 我跟着这个教程 ,但我得到这个execFile函数错误:
{ [Error: spawn ENOENT] code: 'ENOENT', errno: 'ENOENT', syscall: 'spawn' }
我检查了shell脚本(hook.sh)文件的位置和fs.exists函数说没关系。 我试图执行其他文件,而不是一个shell脚本,它的工作(或至less它发现该文件)。 所以这可能是bin / bash的某种问题。 我真的不知道。 shell脚本文件位于与hook.js文件相同的目录中(请参阅教程)。
我的虚拟主机是WebFaction。
我的build议是继续下面的步骤
- 通过
ls -l
检查hook.sh
脚本的执行权限。 您可以尝试使用sudo chmod a+x <PATH TO MY HOOK.SH>
临时设置执行权限allsudo chmod a+x <PATH TO MY HOOK.SH>
- 确保在这里使用了
execFile('/path/to/hook.sh', execOptions, function(error, stdout, stderr)
绝对path。如果它不工作,试着将它指向一些例如在文件系统上触摸某个文件的虚拟脚本。 - 如果没有上述提到的帮助。 通过运行以下命令
set -x
打开bash
的debugging模式。 并检查shell是否开始执行hook.sh