这适用于通过 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 所显示的搜索基本上会起作用。