用于检测弹性搜索在linux中是否处于活动状态的命令



我必须检测elastic search是否在Linux上运行。如果它没有运行,则使用shell script启动它的机器。使用以下代码来检测弹性搜索是否正在运行,但每次执行其他条件时,即使服务正在运行:

service=elasticsearch
if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 ))
then
echo "$service is running!!!"
else
echo "$service is not running!!!"
fi

下面是一个示例脚本,用于shell脚本中检查我的服务是否正在运行:

看看这个脚本,看看它是否对你有帮助。

#verify if the service is running   
ps aux | grep SERVICENAME | pidof java > /dev/null
verifier=$?
zero=0
if [ $zero = $verifier ]
then
    echo "Service was successfully started"
else
    echo "Service stopped"
fi

在我的案例中,我的服务是用java完成的,然后我使用pidof来正确过滤我的服务

检查pid的问题是服务可能已经启动,但实际上可能还没有准备好。因此,我检查ES正在监听的端口。它对我更有效。

netstat -uplnt | grep :9200 | grep LISTEN > /dev/null
verifier=$?
if [ 0 = $verifier ]
    then
        echo "ES is listening on port 9200"
    else
        echo "ES is not ready yet"
fi

相关内容

最新更新