我必须检测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发布于 2015-12-08 16:55:04
下面是一个示例脚本,并在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来正确地过滤我的服务。
发布于 2019-04-17 02:26:47
检查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"
fihttps://stackoverflow.com/questions/34161315
复制相似问题