linux - 在 .ebextension 中检查 AWS EC2 上的服务

标签 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 实例并尝试脚本时,它确实有效。只是它在部署期间不起作用。

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

我这样做正确吗?

最佳答案

弄清楚哪里不对,放在这里供大家引用。

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/

而且效果很好。

关于linux - 在 .ebextension 中检查 AWS EC2 上的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40011383/

相关文章:

amazon-elastic-beanstalk - 如何将 chmod +x 权限添加到 AWS Elastic Beanstalk 平台 Hook ?

linux - Windows 7共享ubuntu目录但看不到里面的文件怎么办?

Linux Bash 输入

testing - 用于测试的假 EC2 端点

python - 我已经在 ec2 实例上安装了 sonarqube,并配置了 python 项目以进行代码分析。但是文件正在不断扫描

amazon-web-services - 为 AWS ELB 生成公共(public)/后端 key

c++ - 网络接口(interface)状态

c - 替换linux内核中使用的container_of宏

amazon-ec2 - Riak 节点在更改 IP 地址后不再工作

amazon-elastic-beanstalk - EB : Trigger container commands/deploy scripts on configuration change