execFile Node.js - 找不到Shell脚本

时间:2014-03-18 06:52:51

标签: javascript linux node.js bash shell

我尝试使用node.js和Github webhooks自动部署我的项目。我跟着this tutorial,但我得到了这个execFile函数错误:

{ [Error: spawn ENOENT] code: 'ENOENT', errno: 'ENOENT', syscall: 'spawn' }

我检查了shell脚本(hook.sh)文件位置,fs.exists函数说它没关系。我试图执行除shell脚本之外的其他文件并且它有效(或者至少它找到了该文件)。所以它可能是bin / bash的某种问题。我真的不知道。 shell脚本文件与hook.js文件位于同一目录中(请参阅教程)。

我的虚拟主机是WebFaction。

1 个答案:

答案 0 :(得分:1)

我的建议是按照以下步骤进行操作

  1. hook.sh检查ls -l脚本的执行权限。您 可以尝试使用sudo chmod a+x <PATH TO MY HOOK.SH>
  2. 临时设置执行权限
  3. 请确保在这里使用hook.sh脚本的execFile('/path/to/hook.sh', execOptions, function(error, stdout, stderr)绝对路径。如果它不起作用,请尝试将其指向某个虚拟脚本,例如触及文件系统上的某些文件。
  4. 如果上述任何一点都没有帮助。打开调试模式 bash运行以下命令set -x。并检查shell是否开始执行hook.sh
相关问题