正在应用Aws codedeploy。 appspec文件如下所示。
version: 0.0
os: linux
files:
- source: script/install-file.sh
destination: /home/
hooks:
AfterInstall:
- location: script/install-file.sh
timeout: 120
runas: root
ApplicationStart:
- location: script/start-file.sh
timeout: 120
runas: root
我试过Succeeded直到AfterInstall。 它仍在applicationStart中待定。 AfterInstall安装了Java文件并设置了权限。
chmod 755 ${file_HOME}/bin/install_api
chmod 755 ${file_HOME}/bin/install_web
设置了自动运行。
/bin/cp ${file_HOME}/bin/install_api /etc/init.d
/bin/cp ${file_HOME}/bin/install_web /etc/init.d
Chkconfig --add ib_api
Chkconfig --add ib_web
start-file.sh在下面。
#!/bin/bash
# start InnerBeans
sudo service install_api start &
sleep 5
sudo service install_web start &
sleep 5
答案 0 :(得分:1)
在LifeCycleEvent脚本中调用后台进程或守护进程时,codedeploy-agent(版本OFFICIAL_1.0-1.1106_rpm)将保持挂起状态,直到70分钟超时。
首先,尝试删除&
,如下所示:
#!/bin/bash
# start InnerBeans
sudo service install_api start
#sleep 5
sudo service install_web start
#sleep 5
如果它仍然失败,你可能在init脚本中有后台或守护进程,所以你需要重定向输出stdout和stderr。
尝试:
#!/bin/bash
# start InnerBeans
sudo service install_api start > /dev/null 2>&1
#sleep 5
sudo service install_web start > /dev/null 2>&1
#sleep 5
第二种方式对我有用。 我在这里找到了解决方案: https://forums.aws.amazon.com/thread.jspa?messageID=626766򙁎 和这里 http://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting-deployments.html#troubleshooting-long-running-processes