0

我正在将应用程序部署到 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 实例并尝试脚本时,它确实可以工作。只是它在部署期间不起作用。

至少应该有一些服务正在运行但为空?

我这样做正确吗?

4

1 回答 1

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/

它工作得很好。

于 2016-10-14T06:57:24.790 回答