Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux CentOS 7 pidof-x不起作用_Linux_Bash_Shell_Centos_Apollo - Fatal编程技术网

Linux CentOS 7 pidof-x不起作用

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

我有一个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 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实例的pidof
pidof
对阿波罗一无所知,因为这对他来说就像是一场争论


当我使用“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实例吗?”?