我试图找出是否有办法按名称和用户杀死所有进程。例如。我想杀死用户myuser运行的所有Java实例。
到目前为止:
$ pgrep -u myuser java
2185
3281
3413
3504
22534
26174
27554
给出了mysuer运行java的pid列表。然后我个别杀了每个pid。有更好的方法吗?
提前致谢!
答案 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
注意: - 如果您要查杀您登录的用户启动的进程,这也将终止您在服务器上的当前登录会话。
感谢。