bash shell
:
{
:|:
}
:
其中函数名“:”只是简化的一例,实际实现时可以随意设定,一个较易理解(将函数名替换为“forkbomb”)的版本如下:
forkbomb(){ forkbomb|forkbomb &} ; forkbomb
注:| 的作用:管道,前者的输出作为后者的输入,此处若不加|呢?
用sleep 1; 做下缓冲(不让系统卡的太快)
原理:
fork×××以极快的速度创建大量Process(Process Number 呈现以2为底数的指数增长趋势),并以此消耗系统分配给进程的可用空间,并使进程表饱和,而系统在进程表饱和后就无法运行新程序,除非进程表中的某一进程终止,但是fork×××程序创建的所有势力都会不断探测空缺的进程槽并尝试取用以创建新进程,故即使某进程终止后,也不可能运行新的进程。
fork×××生成的子程序在消耗进程表空间的同时也会占用CPU和内存,从而导致系统与现有进程运行速度放缓,响应时间也会随之大幅增加,以致于无法正常完成任务,从而使系统的正常运行运作受到严重影响!
【用大量的进程占用大量的CPU和内存资源,使现有进程和系统服务运行速度减慢,响应时间增加,最后导致无法完成作业!
】
转载于:https://blog.51cto.com/5125854/1434125