Det skaber så mange processer som muligt. Mange versioner af Unix er konfigureret med en kerne variabel kaldet maxuproc eller noget lignende. Det er max processer, at en ikke-root-brugeren kan oprette. Det er virkelig den eneste beskyttelse, og selv med, at et program som dette er en plage. Så hurtigt som du dræber en proces, en anden indtager sin plads.
At inddrive, som root, su til den bruger, der kører ", mens (1) gaffel ();". root vil være muligt at udskifte en grundlæggende proces for denne bruger selv om dette bump antallet af processer tidligere maxuproc. Nu har du en shell kører som brugeren. Skallen kan ikke fork (), men det kan exec (). Så indtaste kommandoen:
exec / usr / bin / kill -9 -1
Killing proces -1 faktisk signaler alle processer, der ejes af brugeren. Dette er dokumenteret på dræbe (2) man-siden, og dette er påkrævet i
POSIX. Hvis der er en masse processer og system opkald preemptable og processer med real-time prioritet kører, kan det ikke fungere. En anden tilgang er:
exec / usr / bin / kill-STOP -1
STOP-signal, hvis antal varierer fra system til system, der ikke kan fanges. Det anvendes til job kontrol og suspenderer processen. En suspenderet proces kan ikke forsøge at fork (), men det fortsætter med at forbruge en proces slot, så ingen nye proces kan tage sin plads. Når alle de ulovlige processer er suspenderet, så kan du slå dem fra.
Skaller ofte har en indbygget dræbe kommando ... hvis den kan håndtere -1 er en proces nummer, så du kan bruge det. Men skaller ofte har indbygget dræber at chokeren på killall konstant.