我从普通用户账户启动了 forkbomb,比如“user1”,我正在运行一个脚本,它说
killall -u user1
但它并没有解决问题。
答案1
重启电脑
如果你不能,你可以尝试:
killall -STOP -u user1
killall -KILL -u user1
如果“永久解决方案”的意思是防止这种情况再次发生,那么你实际上做不到,但你可以简单地减少ulimit
问题用户的数量并忽略他们。
答案2
while true; do killall -u user1; done
答案3
我同意柯林的回答,但我会将 -STOP 包装到脚本中并使用 nice --20 来确保 kill 脚本比正在运行的 1000 个炸弹获得更多的 CPU。
echo "while [ 1 ]; do killall -STOP bombprocess ; done" > killscript.sh
或者
echo "while [ 1 ]; do killall -STOP -u userrunningthebomb ; done" > killscript.sh
然后
nice --20 ./killscript.sh
然后,当它们全部停止后
killall -KILL bombprocess
(此时您应该已经可以再次使用 ps)