1

CentOS 7 サーバー VM が 1 つあります。この VM にApache Apolloインストールしました

以下のスクリプトを作成しました

#!/bin/bash

if pidof -x "apollo" >/dev/null; then
echo "Apollo MQTT is Running."
exit 0
else
echo "Apollo MQTT is Stopped."
exit 2
fi

上記のスクリプトを使用して、apollo サービスが実行されているかどうかを確認します。しかし、以下のコマンドを使用してこのスクリプトを実行すると

sh filename

Apollo MQTT is Stoppedサービスが実行されているときに出力を提供します。

以下のコマンドを実行すると

ps -ef | grep apollo

以下の出力が得られます

root       8647      1  3 10:49 pts/0    00:00:55 java -ea -server -Xmx1G -XX:+HeapDumpOnOutOfMemoryError -XX:-UseBiasedLocking -Dcom.sun.management.jmxremote -Dapollo.home=/opt/apollo -Dapollo.base=/var/lib/mqtt -classpath /opt/apollo/lib/apollo-boot.jar org.apache.activemq.apollo.boot.Apollo /var/lib/mqtt/lib\;/opt/apollo/lib org.apache.activemq.apollo.cli.Apollo run
root       9426   8233  0 11:15 pts/0    00:00:00 grep --color=auto apollo
4

2 に答える 2

1

あなたは 1 つの問題を無視したと思います。プロセスは Java インスタンスであり、pidofプログラムの は Java インスタンスのプロセスです。彼にとっては議論のようなものなので、彼はpidofについて何も知りません。apollo

ムジドのソリューションをお勧めします

于 2016-08-17T07:09:23.863 に答える
1

これを使用できます。

if (( $(ps -ef | grep -v grep | grep -i apollo | wc -l) > 0 ))
then
 echo "Apollo MQTT is Running."
 exit 0
else
 echo "Apollo MQTT is Stopped."
 exit 2
fi
于 2016-08-17T06:57:49.473 に答える