2017-07-25 64 views
0

我試圖讓一個foreverJS腳本在EC2實例上運行節點服務器。該腳本看起來像:ForeverJS第一行bash腳本錯誤

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

即使我添加一個echo "getting here"語句作爲第一行我還得到一個錯誤。我不知道bash腳本很好,所以它可能是權限,相對/絕對路徑,EC2 /節點,環境變量有關,但我真的不知道。

堆棧跟蹤:

[[email protected] 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中/永遠 其中NPM - 的/ usr/local/bin中/ NPM 須藤whomai - 根 須藤其中NPM - 的/ usr /斌/ NPM 須藤其永遠的 - 在/ usr/bin中/永遠 節點-v -v8.2.1 NPM -v - 5.3.0

詢問是否需要額外的環境信息...

+0

難道你不會像'bash。/ startup.sh'那樣運行嗎? – stdunbar

+0

@stdunbar我在使用永久語法之前運行它 - 選項 $ forever --help usage:forever [action] [options] SCRIPT [script-options] https://github.com/foreverjs/forever –

回答

1

永遠假設SCRIPT是一個JS文件可以使用Node.js執行您正在嘗試運行bash腳本,因此它自0123以來出錯顯然是無效的JS代碼。

要解決此問題,需要在運行forever時使用-c命令行選項。從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