我必须检测Linux上是否正在运行\library
|--\angular
|--\angular-bootstrap
|--\bootstrap
...etc
。如果它没有运行,请使用elastic search
启动它。
使用以下代码来检测弹性搜索是否正在运行,但是即使服务正在运行,每次执行其他条件:
shell script
答案 0 :(得分:2)
这是一个示例脚本,在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来正确过滤我的服务
答案 1 :(得分:0)
The issue with checking for pid is that the service might have started, but it might not be ready actually. So instead, I check for port that ES is listening on. It works better for me.
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