Linux CentOS 7 pidof-x不起作用
我有一个CentOS 7服务器虚拟机。在这个虚拟机中,我安装了ApacheAppollo 我刚刚创建了一个脚本,如下所示Linux CentOS 7 pidof-x不起作用,linux,bash,shell,centos,apollo,Linux,Bash,Shell,Centos,Apollo,我有一个CentOS 7服务器虚拟机。在这个虚拟机中,我安装了ApacheAppollo 我刚刚创建了一个脚本,如下所示 #!/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 f
#!/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
ps -ef | grep apollo
当servce运行时,它给出阿波罗MQTT停止时的输出
当我在命令下面运行时
sh filename
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
你可以用这个
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
我相信你忽略了一个问题。进程是一个java实例,程序的
pidof
就是java实例的pidofpidof
对阿波罗一无所知,因为这对他来说就像是一场争论
当我使用“if pgrep-f apollo>/dev/null;then”时,我会推荐muzido的解决方案,它总是显示apollo MQTT正在运行。如果服务正在运行,则停止这两种情况。停止Apollo并使用
ps-ef | grep Apollo
进行检查。停止Apollo并请发布pgrep-f Apollo
的输出。我建议询问。上述代码始终显示Apollo MQTT正在运行。如果服务正在运行并停止这两种情况。当您可以简单地使用pgrep
,或者更糟糕的情况下,或者最坏的情况下,如果ps-ef | grep-i“[a]pollo”&>/dev/null;然后。。。fi
您能否提供ps-ef | grep-v grep | grep-i尝试;如果($(ps-ef | grep-v grep | grep-i“org.apache.activemq.apollo.cli.apollo run”| wc-l)>0))@M.Dogru当我启动apollo并运行“ps-ef | grep-v grep | grep-i apollo”输出时“root 12990 1 99 12:48 pts/0 00:00:19 java-ea-server-Xmx1G-XX:+HeapDumpOnOutOfMemoryError-XX:-usebiasedlock-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“当我停止apollo运行”ps-ef | grep-v grep | grep-i apollo“输出为空。您是对的。我的apollo服务使用java实例。但我的问题是它总是使用java实例?如果我选中pidof-x“java”“目前它运行得很完美,但将来阿波罗会一直使用java实例吗?”?