我想从 Linux 系统上的 shell 脚本或本机代码中杀死特定用户的所有正在运行的进程。
我是否必须阅读 /proc 目录并查找这些?
有任何想法吗?Linux 中 UID 下的 pid 是否有动态映射?这不是在proc中吗?
如果没有,那么这个列表在哪里维护?我应该从中阅读吗?此外,系统中所有 UID 的静态列表在哪里,以便我可以验证此用户是否存在,然后继续杀死在其下运行的所有进程?
我在在线闪存卡中读到命令是:
pkill -u bob $(pgrep -u bob)
Run Code Online (Sandbox Code Playgroud)
然而,我认为这是错误的。我认为它在说:
杀死所有拥有的处理
bob
,和4572\n4600
因为:
[bob@localhost ~]$ pgrep -u bob
4572
4600
Run Code Online (Sandbox Code Playgroud)
此外,它给出了一个错误:
[bob@localhost ~]$ pkill -u bob $(pgrep -u bob)
pkill: only one pattern can be provided
Try `pkill --help' for more information.
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为您不能在用户名中使用换行符,对吗?
我认为命令应该只是:
pkill -u bob
Run Code Online (Sandbox Code Playgroud)
“杀死鲍勃拥有的所有进程”
而命令:
pgreg -u bob
Run Code Online (Sandbox Code Playgroud)
给出“bob 拥有的所有进程”
我很好奇: