使用 pkill 杀死属于用户的所有进程

杀死属于某个用户的所有进程

Activity Monitor 和传统的“kill”命令行工具能够处理大多数进程终止需求,但如果您曾经需要定位并终止属于单个用户帐户的所有进程,您就会知道这可能会令人沮丧任务。虽然 Activity Monitor 允许您对“其他用户进程”进行排序并选择多个进程,但它不允许您终止多个同时处理。同样,标准的 kill 和 killall 命令通常针对特定进程,而不是针对属于特定用户帐户的每个任务。这就是“pkill”命令的用武之地,它可以很容易地通过终端立即杀死属于任何用户的每个进程。

如何使用 pkill 杀死用户的所有进程

使用 pkill 杀死所有用户进程的基本语法如下:

pkill -u 用户名

通过在 ps 命令上使用 -u 标志验证属于该用户的所有进程都已终止:

ps -u 用户名

假设一切按预期进行,您会发现返回一个空白列表。

pkill 不区分大小写,这意味着用户名“TestUser”将被识别为与“testuser”相同。

如果您要亲自尝试,最好使用快速用户切换来启动新登录 另一个用户帐户,或使用ssh server 并在另一台本地 Mac 上执行。对您自己的活动用户名使用 pkill 会导致所有进程终止,其中一些会立即刷新,但许多后台进程不会自动再次启动。这会导致各种奇怪的行为,并且根据您正在运行的内容,如果发现操作系统变得如此无法使用以至于您需要注销并再次登录,或者如果活动用户甚至重新启动,请不要感到非常惊讶pkill 的目标帐户是 root 或管理级别。

pkill 命令在指向用户名时有点像喷灯,可以被认为是一种从本质上强行退出属于已登录用户的所有内容的方法,但这也可以使它成为一个非常强大的故障排除工具,以及何时处理在用户注销后仍保持完整的失效或僵尸进程。

我们之前讨论过 pkill 命令使用通配符和属于单个用户的特定应用程序/进程,虽然它是自从 Mac OS X Mountain Lion 开始的 Mac OS 以来 Mac 的最新添加,但它在 Linux 世界中已经存在了很长一段时间。