启动java进程,10秒后监控

启动java进程,10秒后监控

我想启动一个 java 进程...然后通过 bash 脚本检查它是否在 10 秒后仍在运行。

是否有捷径可寻?

答案1

$!您可以通过使用获取最后执行的命令的 PID 并使用它kill -0检查它是否仍在运行,从而做得更好。

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

答案2

我很惊讶没有人提到“jps”。试试吧!

答案3

好吧,创建一个名为 something.sh 的文件,将 program 替换为您的程序的名称:

java -jar program
sleep 10
ps aux| grep program

如果输出为空,则表示它已停止工作。使用 sh something.sh 启动它。

答案4

感谢您的提问。您可能想看看以下示例脚本,看看这是否是您所需要的:

#!/bin/sh
MYPROCESS='your-java-process'
if ($(ps aux | grep $MYPROCESS | grep -v “grep $MYPROCESS″ | wc -l) > 0)
then
echo "$MYPROCESS 服务正在运行,一切正常" >
else
echo "$MYPROCESS 未运行"
fi

下面的“if”语句借助“ps”命令检查进程是否正在运行。在 if 语句中,“ps aux”列出当前正在运行的进程。下一节将找出您的进程,然后我们从获得的进程列表中消除 grep 进程,最后计算实例数。如果结果大于零,则您的进程正在运行,否则没有运行。

希望这可以帮助...

相关内容