:(){ :|:& };:
..mendefinisikan fungsi bernama : , yang memunculkan dirinya sendiri (dua kali, satu menyalurkan ke yang lain), dan latar belakangnya sendiri.
Dengan jeda baris:
:()
{
:|:&
};
:
Mengganti nama : berfungsi untuk forkbomb :
forkbomb()
{
forkbomb | forkbomb &
};
forkbomb
Anda dapat mencegah serangan tersebut dengan menggunakan ulimit untuk membatasi jumlah proses per pengguna:
$ ulimit -u 50
$ :(){ :|:& };:
-bash: fork: Resource temporarily unavailable
$
Lebih permanen, Anda dapat menggunakan /etc/security/limits.conf (setidaknya pada Debian dan lainnya), misalnya:
* hard nproc 50
Tentu saja itu berarti Anda hanya dapat menjalankan 50 proses, Anda mungkin ingin meningkatkannya tergantung pada apa yang dilakukan mesin!
Itu mendefinisikan fungsi yang disebut : yang memanggil dirinya sendiri dua kali (Kode:: | : ). Itu dilakukan di latar belakang (& ). Setelah ; definisi fungsi selesai dan fungsi : memulai.
Jadi setiap instance dari :memulai dua yang baru :dan seterusnya... Seperti proses pohon biner...
Ditulis dalam C biasa yaitu:
fork();
fork();