我正在使用 Bitbucket 管道将 Node 应用程序安装到 EC2 Linux 实例。我的应用程序根目录下的 AppSpec.yml 文件定义了部署。在安装之前,我想停止目标服务器上运行的所有 Node 进程。这是我的 BeforeInstall 挂钩:
BeforeInstall:
- location: deploy/killallnode.sh
timeout: 30
runas: root
脚本里面的命令是:
killall node
部署失败,这是我在 AWS 中找到的内容:
LifecycleEvent - BeforeInstall
Script - deploy/killallnode.sh
[stderr]node: no process found
此错误是预料之中的。如何在命令行中抑制此错误,或配置 AppSpec 挂钩以忽略此错误?谢谢您的建议!
我尝试将脚本命令更改为:
killall node 2> /dev/null
这抑制了错误消息,但killall命令仍然返回错误代码1。
有一个属性可以控制它。 忽略应用程序停止失败
在 yaml 中的实现方式如下:
version: 0.0
os: linux
IgnoreApplicationStopFailures: true
files:
- source: /
destination: /api
hooks:
...etc...