Wie töte ich einen Gabelbombenprozess?

11

Ich habe forkbomb von einem normalen Benutzerkonto aus gestartet. Sagen Sie "user1". Ich führe ein Skript aus, das besagt

killall -u user1

Aber es hat die Situation nicht behoben.

Lakshmipathi
quelle
Ist das Zurücksetzen der Stromversorgung eine Option?
Gibt es eine andere Option? Ein Neustart löst dieses Problem. Aber es ist keine dauerhafte Lösung.

Antworten:

14

Starten Sie den Computer neu

Wenn Sie nicht können, können Sie versuchen:

killall -STOP -u user1
killall -KILL -u user1

Wenn mit "dauerhafte Lösung" gemeint ist, dass dies nicht erneut geschieht, können Sie dies nicht wirklich, aber Sie können die ulimitfür die Problembenutzer einfach reduzieren und sie ignorieren.

Colin Pickard
quelle
1
Dank Einstellung Ulimit ist die dauerhafte Lösung, um dies zu verhindern. Aber killall -KILL hat auch für mich funktioniert. Danke
lakshmipathi
4
while true; do killall -u user1; done
Wolph
quelle
0

Ich stimme Colins Antwort zu, aber ich würde -STOP in ein Skript und nice -20 einwickeln, um sicherzustellen, dass das Kill-Skript mehr CPU als die 1000er-Bomben erhält.

echo "while [ 1 ]; do killall -STOP bombprocess ; done" > killscript.sh

oder

echo "while [ 1 ]; do killall -STOP -u userrunningthebomb ; done" > killscript.sh

dann

nice --20 ./killscript.sh

und dann, nachdem alle aufgehört haben

killall -KILL bombprocess (Zu diesem Zeitpunkt sollten Sie ps bereits wieder verwenden können.)

Roberto Rodriguez Alcala
quelle