while (1) fork();

Jan Kasprzak kas na informatics.muni.cz
Pondělí Únor 2 13:23:35 CET 1998


Mikulas Patocka pise:
: Pri experimentovani s Linuxem jsem prisel na to, ze kdyz nejaky
: uzivatel vykona program obsahujici while (1) fork(); tak cely
: system vytuhne; pocet procesu narusta exponencialne. Root nema
: sanci to vykillovat, ani kdyz vykona killall tesne po spusteni
: toho programu.

	Ja teda nevim, ale Linux ma tusim rezervovane ctyri nebo kolik
polozek v tabulce procesu pro roota. Takze root se minimalne muze prihlasit.
Sam jsem na svem pocitaci zkusil tohle:

$ echo 'main(){while(1){fork();}}' >bomb.c
$ cc bomb.c
$ ./a.out

	System byl desne pomaly (to jest procesy dostavaly 1/256 strojoveho
casu proti obvyklemu chodu systemu), ale na druhe strane Linux velmi
rychle detekoval interaktivni procesy (X server a xterm, do ktereho
jsem se pokousel psat, takze zas _tak_ pomale to nebylo),
no a pomoci "exec killall a.out" jsem v pohode
bombu ukoncil. Pokud by tohle neslo, mohl jsem se treba nalogovat
na konzole jako root. Pokud by neslo killall, mohl jsem jeste dat
kill -KILL -1, coz by me ale odlogovalo z iXu, takze jsem radeji
zkusil killall. a to proslo. Zadny problem. RedHat 5.0 na P133,
kernel 2.1.78.

-Yenya

--
\ Jan "Yenya" Kasprzak <kas at fi.muni.cz>       http://www.fi.muni.cz/~kas/
\\ PGP: finger kas at aisa.fi.muni.cz   0D99A7FB206605D7 8B35FCDE05B18A5E //
\\\             Czech Linux Homepage:  http://www.linux.cz/              ///
|| I find that the algol60 interpreter, teco and jclsh (ibm JCL emulator  ||
|| shell) are very good for teaching people that computing has moved on.  ||
||                           -- Alan Cox in redhat-devel                  ||



Další informace o konferenci Linux