Hallo,
ich habe zum Spass mal probiert, wie sich forkbombs auf meinem Laptop auswirken. Ich habe mir dazu folgendes kleines Progrämmchen geschrieben:
#include
#include
int main(int argc, char\*\* argv){
pid\_t a = 0;
while(1){
a += fork();
}
}
dann habe ich das ganze mit gcc kompiliert und mit ./a.out gestartet. Wenn ich das nach ein bis zwei Sekunden mit Ctrl+C abbreche, dann läuft der Laptop normal weiter. Ausser einer hohen load average bleiben keine Spuren zurkück.
Heute es ist mir aber passiert, dass ich die forkbomb abgebrochen habe, und noch minuten später kam bei jedem Versuch, ein Programm zu starten, nur der Fehler „Ressource temporarily unavailable“. Dabei sollte doch durch das SIGINT die ursprüngliche forkbomb abgeschossen werden, und durch die folgenden SIGHUPs alle childs ebenfalls sterben.
Wieso konnten andere Prozesse trotzdem nicht forken? Wo liegt mein Denkfehler?
moritz@rena:~\>uname -a
Linux rena 2.6.9 #19 Wed Apr 20 13:26:22 CEST 2005 i686 GNU/Linux
Viele Grüße,
Moritz