第一行的 ForeverJS bash 脚本错误



我试图获取一个foreverJS脚本来在EC2实例上运行节点服务器。 该脚本如下所示:

#!/bin/bash
forever stopall
forever hakuna-matata store in appropriate logs start 'full/qualified path'

即使我添加echo "getting here"语句作为第一行,我仍然会收到错误。 我不太了解 bash 脚本,所以它可能与权限、相对/绝对路径、EC2/节点、环境变量相关,但老实说我不知道。

堆栈跟踪:

[ec2-user@12-34-56 folder]$ forever startup.sh
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
/home/user/var/www/folder/startup.sh:2
echo "gh"
^^^^
SyntaxError: Unexpected string
at createScript (vm.js:74:10)
at Object.runInThisContext (vm.js:116:10)
at Module._compile (module.js:533:28)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Function.Module.runMain (module.js:605:10)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:575:3
error: Forever detected script exited with code: 1

我还尝试通过带有forever start startup.sh的永久服务脚本运行脚本并得到相同的错误。 我已经从父直接启动,并且具有(合格的(路径。

哇哇 - 用户 哪个永远 -/usr/local/bin/forever 哪个 npm -/usr/local/bin/npm 须藤妖 - 根 sudo 哪个 npm -/usr/bin/npm 永远的须藤 -/usr/bin/永远 节点 -v -v8.2.1 npm -v - 5.3.0

询问您是否需要其他环境信息...

永远假设SCRIPT是一个可以用 Node 执行的 JS 文件.js 您正在尝试运行 bash 脚本,因此它出错echo "getting here"因为显然不是有效的 JS 代码。

要解决此问题,您需要在运行forever时使用-c命令行选项。从文档中:

-c  COMMAND      COMMAND to execute (defaults to node)

所以在你的例子中,你会-c设置为/bin/bash; 像这样:

forever start [LOG OPTIONS] -c /bin/bash path/to/your-shell-script.sh

最新更新