Cha*_*ani 3 linux process search
我必须在 Rhel 6 机器上开始一些性能测试,但在开始测试之前,我必须确保没有其他 Java 进程在运行。
这样做的手动方法是使用 "ps -ef | grep java"
但是,由于这个测试将是自动化的,我需要一种方法来以编程方式检测它并杀死所有这些。
有没有办法做到这一点?
怎么样...?
pkill java
Run Code Online (Sandbox Code Playgroud)
pkill(1)(也在killall(1)Linux 上)的工作方式类似于kill(1),但将信号发送到具有指定名称的所有进程,而不是 PID。还有其他匹配进程的方法 - 检查手册页!
事实上,特别是因为这是我们正在谈论的 Java,我会执行以下操作来正确地自动化操作:
pgrep java >/dev/null && (pkill java; sleep 5)
pgrep java >/dev/null && (pkill -9 java; sleep 5)
if pgrep java >/dev/null; then
echo "Whoops, java processes still running. Bailing out."
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
这将检查是否有任何 java 进程正在运行,发送SIGTERM信号并等待 5 秒。如果仍有进程在运行,它会发送SIGKILL信号并再等待 5 秒。如果仍有进程在运行,它会停止执行返回退出代码 1 的脚本。
更新:将答案更改为使用pgrep(1)andpkill(1)而不是pidof(1)and killall(1)。
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |