Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 无论发生什么情况,Amazon CodeDeploy应用程序停止脚本都会失败_Amazon Web Services_Amazon S3_Amazon Ec2_Bitbucket_Aws Code Deploy - Fatal编程技术网

Amazon web services 无论发生什么情况,Amazon CodeDeploy应用程序停止脚本都会失败

Amazon web services 无论发生什么情况,Amazon CodeDeploy应用程序停止脚本都会失败,amazon-web-services,amazon-s3,amazon-ec2,bitbucket,aws-code-deploy,Amazon Web Services,Amazon S3,Amazon Ec2,Bitbucket,Aws Code Deploy,我尝试使用codedeploy从bitbucket自动部署到ec2实例,但codedeploy在“ApplicationStop”阶段总是失败 这是我的appspec.yml 版本:0.0 操作系统:linux 文件夹: -来源:/quickdeal.zip 目的地:/home/ubuntu/quickdeal/ 挂钩: 安装前: -位置:scripts/install_dependencies.sh 符文:根 应用程序顶部: -位置:scripts/stop_server.sh 符文:根 应

我尝试使用codedeploy从bitbucket自动部署到ec2实例,但codedeploy在“ApplicationStop”阶段总是失败

这是我的appspec.yml


版本:0.0
操作系统:linux
文件夹:
-来源:/quickdeal.zip
目的地:/home/ubuntu/quickdeal/
挂钩:
安装前:
-位置:scripts/install_dependencies.sh
符文:根
应用程序顶部:
-位置:scripts/stop_server.sh
符文:根
应用程序启动:
-位置:scripts/start_server.sh
runas:root

下面是stop_server.sh

#!/bin/bash
# stop any old running servers 
killall -s KILL node -q || echo 'no node process was running'
但这就是我在aws中遇到的错误

Error CodeScriptFailed
Script Namescripts/stop_server.sh
MessageScript at specified location: scripts/stop_server.sh run as user root failed with exit code 1
Log TailLifecycleEvent - ApplicationStop
Script - scripts/stop_server.sh
我已经尝试过的事情

[1] 删除并重新创建应用程序
[2] 清空stop_server.sh,这样它就不会发出任何退出代码(仍然有退出代码1)

首先,当我尝试使用您的
killall
命令时,它会失败:

killall: unknown signal q; valid signals:
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP
TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2
至于您讨论的问题,我非常确信
scripts/stop\u server.sh
不是可执行文件。如果脚本不可执行,如果您尝试手动运行它,您会得到类似于
sudo:scripts/stop_server.sh:command not found
。尝试在本地运行脚本,我打赌您会看到这一点


不过这是一个简单的解决办法。在appspec-
sudo chmod+x scripts/stop_server.sh中运行的任何可执行文件上运行此命令,这将解决您在创建新应用程序包时遇到的问题。

因为您有两个问题,所以您应该有两个单独的SO问题。我将编辑您的问题以删除问题2,然后我将尝试回答您的第一个问题。感谢您的答复,它们从一开始都是可执行的。我检查了很多次许可证。其他人也遇到了这些问题,建议清除“/opt/codedeploy agent/deployment root”目录并重新创建代码部署应用程序,结果成功了。嗯,真奇怪。对于上次成功部署(在所有失败之前),您是否在
脚本/stop_server.sh
中有错误?当您进行部署时,它实际上将使用上一次成功部署中的
ApplicationStop
,而不是您当前的部署。当
ApplicationStop
脚本出现错误时,这是一个常见问题。您尝试更新部署,但部署继续失败。如果是这样的话,你嘿,伙计,非常感谢你提供的指南链接。我想这可能就是问题所在。它被成功部署了3次,之后当我在停止脚本中做了一些更改时,它开始失败。即使将它改回原来的版本,它仍然失败。但正如我所了解的,停止脚本在运行任何其他脚本之前运行。我的最后一个选择是重新创建应用程序。