启动java进程并在10秒后进行监视

我想开始一个java进程…然后检查它是否仍然运行10秒后从一个bash脚本。

是否有捷径可寻?

您可以使用$!更好地实现这一点 得到最后执行的命令的PID,并使用kill -0来检查它是否仍在运行。

 #!/bin/sh java & PID=$! sleep 10 if kill -0 $PID; then echo "running" else echo "not running" fi 

我惊讶没有人提到“jps”。 尝试一下!

好吧,创build一个名为something.sh的文件,用程序的名称replace程序:

 java -jar program sleep 10 ps aux| grep program 

如果输出是空的,那么它已经停止工作。 启动它与sh something.sh。

保存您创build的java进程的进程ID,(立即调用它)。

PID = $(pgrep -n java | head -n 1)

稍后使用进程search来查找使用PID

 ps --no-headers $PID 

在这一点上如果$? 为0,那么进程仍在运行。 如果是1,则退出该过程。

感谢您的问题。 你可能想看看下面的示例脚本,看看这是你需要的:

#!/ bin / sh的
MYPROCESS = '你-java的过程'
if($(ps aux | grep $ MYPROCESS | grep -v“grep $ MYPROCESS”| wc -l)> 0)
然后
回声“$ MYPROCESS服务运行,一切都很好”>
其他
回声“$ MYPROCESS未运行”
科幻

下面的'if'语句通过'ps'命令检查进程是否在运行。 在if语句中,“ps aux”列出当前正在运行的进程。 接下来的部分找出你的进程,然后从获得的进程列表中消除grep进程,最后统计实例的数量。 如果结果大于零,则表示进程正在运行,否则不是。

希望这可以帮助…