Si crea il maggior numero di processi possibile. Molte versioni di Unix sono configurati con un kernel variabile chiamata maxuproc o qualcosa di simile. È max processi che un utente non root può creare. Questo è davvero l'unica protezione e che anche con un programma come questo è un fastidio. Veloce come voi uccidere un processo, un altro prende il suo posto.
Per recuperare, come root, su verso l'utente che esegue il "while (1) fork ();". root sarà consentito di passare una radice di questo processo, anche se questo utente colpi del numero di processi maxuproc passato. Ora avete una shell in esecuzione come utente. La shell non può fork (), ma può exec (). Quindi, immettere il comando:
exec / usr / bin / kill -9 -1
Killing processo -1 segnali effettivamente di proprietà di tutti i processi che l'utente. Questo è documentato sul uccidere (2) l'uomo e questa pagina è richiesto da
posix. Se ci sono un sacco di processi e le chiamate di sistema sono preemptable e con i processi in tempo reale priorità sono in esecuzione, questo potrebbe non funzionare. Un secondo approccio è il seguente:
exec / usr / bin / kill-STOP -1
Il segnale di STOP, il cui numero varia da sistema a sistema, non può essere catturato. Si tratta di posti di lavoro utilizzati per il controllo e sospende il processo. Un processo di sospensione non può tentare di fork (), ma si continua a consumare un processo di bande orarie in modo nuovo processo non può prendere il suo posto. Una volta che tutti i processi sono sospesi offendere, allora si può uccidere fuori.
I serbatoi hanno spesso incorporato nel comando kill ... se sono in grado di gestire un processo -1 numero, allora si può usare questo. Ma spesso i serbatoi sono dotati di soffocamento che uccide il killall costante.