按名称和用户终止流程

时间:2011-04-27 22:28:39

标签: process kill

我试图找出是否有办法按名称和用户杀死所有进程。例如。我想杀死用户myuser运行的所有Java实例。

到目前为止:

$ pgrep -u myuser java
2185
3281
3413
3504
22534
26174
27554

给出了mysuer运行java的pid列表。然后我个别杀了每个pid。有更好的方法吗?

提前致谢!

5 个答案:

答案 0 :(得分:6)

使用killall(1)

killall -u myuser java

请注意,您可能需要通过sudo执行此操作,并且可能需要-9来终止吞下SIGTERM的进程:

sudo killall -9 -u myuser java

答案 1 :(得分:0)

你很亲密:

$> pgrep -u myuser java | xargs kill

答案 2 :(得分:0)

以下命令可以完成工作

$ pkill -u user process_name

请注意,process_name也可以是正则表达式。

答案 3 :(得分:0)

我知道这已经过时了但是这里是一个轻松执行此操作的bash脚本......:

`pgrep -u root $app`
set -- $appPID
kill -9 $appPID

这是我写的关于杀死一组流程的主题的博客文章:https://soroo.sh/linux/kill-processess-by-name

答案 4 :(得分:0)

您可以使用

执行此操作
killall -u user

但有时这会导致失效的过程。

最好的方法可能是这样的: -

psu | grep user | awk  '{print $2}' | xargs   kill -9

注意: - 如果您要查杀您登录的用户启动的进程,这也将终止您在服务器上的当前登录会话。

感谢。