ForeverJS在第一行bash脚本错误

时间:2017-07-25 19:10:09

标签: node.js bash amazon-ec2 npm forever

我试图获取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的永久服务脚本运行脚本并获得相同的错误。我已从父母直接启动并使用(合格)路径。

whoami - 用户 永远 - / usr / local / bin / forever npm - / usr / local / bin / npm sudo whomai - root sudo哪个npm - / usr / bin / npm 永远的sudo - / usr / bin / forever 节点-v -v8.2.1 npm -v - 5.3.0

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

1 个答案:

答案 0 :(得分:1)

永远假设SCRIPT是一个可以用Node.js执行的JS文件你试图运行一个bash脚本,所以它出错了,因为echo "getting here"显然是无效的JS代码

要解决此问题,您需要在运行-c时使用forever命令行选项。来自the docs

-c  COMMAND      COMMAND to execute (defaults to node)

因此,在您的情况下,您将-c设置为/bin/bash;像这样:

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