所以我使用AWS代码部署…代码使它到服务器很好,我可以看到一切都在它需要的地方。我的appspec。Yml看起来像这样:
version: 0.0
os: linux
files:
- source: ./
destination: /dmi
hooks:
ApplicationStart:
- location: scripts/start_server.sh
timeout: 500
runas: root
很基本。问题是CodeDeploy似乎从来没有执行脚本/start_server.sh
文件是这样的:
java -jar ../*.jar
如果我ssh到那台机器,只是手动运行。/scripts/start_server.sh,它运行良好。那么为什么代码部署不执行start_server.sh呢?
在我的scripts/start_server.sh
脚本中,我发现我必须重定向stdin
和stdout
和背景任务:
/var/myservice/scripts/run > /dev/null 2> /dev/null < /dev/null &