aws codedeploy长时间运行的进程

时间:2017-06-29 10:08:07

标签: amazon-web-services aws-code-deploy long-running-processes

正在应用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

1 个答案:

答案 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&#626766 和这里 http://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting-deployments.html#troubleshooting-long-running-processes