Es schafft so viele Prozesse wie möglich zu gestalten. Viele UNIX-Versionen sind mit einer Kernel-Variable namens maxuproc oder so ähnlich. Es ist max Prozesse, die ein Nicht-root-Benutzer erstellen können. Das ist wirklich die einzige und auch mit, dass ein Programm wie dieses ist ein Ärgernis. So schnell, wie Sie einen Prozess, der andere kommt.
Sich zu erholen, als root, so für den Anwender, der mit der "while (1) Gabel ();". root werden darf, um ein Root-Benutzer an diese, auch wenn diese Unebenheiten die Anzahl der Prozesse Vergangenheit maxuproc. Jetzt haben Sie eine Shell laufen, wenn der Benutzer. Die Shell kann nicht fork (), aber es kann exec (). So geben Sie den Befehl:
exec / usr / bin / kill -9 -1
Killing Prozess -1 tatsächlich Signale aller Prozesse im Besitz der Nutzer. Dies ist dokumentiert auf der kill (2) man-Seite und das ist von
posix. Wenn es gibt eine Menge von Prozessen und System Calls sind preemptable und mit Echtzeit-Priorität ausgeführt werden, kann dies nicht funktionieren. Ein zweiter Ansatz ist:
exec / usr / bin / kill-STOP -1
Das Stop-Signal, deren Zahl variiert von System zu System, kann nicht gefangen werden. Es ist für die Kontrolle über ihre Arbeit und setzt den Prozess. Eine Aussetzung kann nicht versuchen, fork (), sondern sie weiterhin zu konsumieren ein Prozess-Steckplatz, so dass keine neuen Verfahren kann seinen Platz. Sobald alle betreffenden Prozesse ausgesetzt sind, können Sie töten aus.
Shells haben oft eine built-in kill-Befehl ... wenn sie mit -1 werden ein Prozess, dann können Sie dieses. Aber Tanks haben oft eingebaute tötet ersticken, dass auf dem killall konstant.