Shell 知道 minecraft 是否正在运行

Shell 知道 minecraft 是否正在运行

这适用于通过 java 或任何类型的包装器在 Linux 下运行的任何其他应用程序。

在系统监视器下,minecraft 显示为“java”。这是有问题的……

如果正在运行的 Java 应用程序不是 Minecraft,该怎么办?如果有多个怎么办?

我的脚本得到的最佳结果是:

if ps ax | grep -v grep | grep java > /dev/null
then
echo "Minecraft is running"
else
echo "Minecraft not running, run Minecraft to continue"
fi

我如何才能确定 Minecraft 正在运行而不是任何旧的 Java 应用程序?

谢谢

答案1

首先,当 minecraft 运行时,运行

pgrep -a java

现在找到一些独特的东西,也许它只是minecraft

您可以通过运行来获取您的 pid

pgrep -f minecraft

答案2

实际上,最好的方法是通过 shell 脚本启动时将 PID 写入文件。然后,您可以向 pid 发送 0 信号以查看它是否正在运行。

kill -0 $(cat /run/minecraft.pid)

如果它正在运行,则返回 0;如果它未运行,则返回 >0(大于 0)。

否则,如果您无法控制该过程的启动,那么像 davidbaumann 所显示的搜索基本上会起作用。

相关内容