在.ebextension

时间:2016-10-13 02:37:22

标签: linux amazon-ec2 ebextensions

我正在将应用程序部署到AWS EC2实例,并且我在.ebextensions文件夹中使用配置文件来执行bash脚本。

在脚本中我检测特定服务是否正在运行,如果它没有运行,请使用rpm安装软件包。

#!/bin/bash

service --status-all | grep -q 'MyService'

if [ $? -ne 0 ];
then
    install my package
else
    do nothing
fi

但是脚本无效,它总是再次安装我的服务。

这是因为

service --status-all

什么都没有让我感到困惑!但是在部署之后,当我转到EC2实例并尝试使用脚本时,它确实有效。只是它在部署期间不起作用。

应该至少有一些服务在运行但是空了吗?

我这样做是否正确?

1 个答案:

答案 0 :(得分:0)

弄清楚什么是错的,把它放在这里供大家参考。

service --status-all 

在bash提示符下工作,但在我的AWS EC2部署期间似乎没有返回任何内容。

我已将其更改为

if ps ax | grep -v grep | grep -q 'My Service' 

从这里开始:http://www.akamaras.com/linux/linux-script-to-check-if-a-service-is-running-and-start-it-if-its-stopped/

它完美无缺。