杀死当前用户的所有进程

Vi.*_*Vi. 5 linux kill process

user@host$ killall -9 -u user

它肯定会杀死user(包括 forkbombs)拥有的所有进程吗?

  1. 不会user从其他用户生成新进程。
  2. Nouser的进程处于 D-sleep 并且无法杀死。
  3. 没有进程试图检测和/ptrace或终止这个启动killall(但它们可以相互跟踪或做其他事情)
  4. 有可以ulimit防止太多进程(但killall已经启动并分配了它的内存)

例如,如果killall将完成未篡改并成功是否 100% 没有进程留下此 uid?如果不是,如何正确执行(使用标准命令且没有 root 访问权限)。

SysRq+I 肯定会杀死所有东西(甚至复制)吗?

whi*_*ark 4

首先列出所有要杀死的进程,然后迭代该列表并杀死它们killall。如果你有一个forkbomb正在运行,在杀死其中一个进程之后,很可能另一个进程会立即回收刚刚释放的PID,但认为它已经杀死了该进程,所以实际上什么也不会发生。killallkillall

如果 forkbomb 对您来说是个问题,您应该使用ulimit 。将进程数量限制为例如 128 个,forkbomb 将悄然消亡或停止扩展,具体取决于它的编写方式。无论如何,它不会对该系统的其他用户造成任何危险。