我正在将应用程序部署到 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'
而且效果很好。
关于linux - 在 .ebextension 中检查 AWS EC2 上的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40011383/