cs.phhsnews.com


cs.phhsnews.com / Co je to "zombie proces" na Linuxu?

Co je to "zombie proces" na Linuxu?


Pokud jste uživatel Linuxu, možná jste viděli zombie procesy kolem svého seznamu procesů. Nemůžete zabít zombie proces, protože je již mrtvý - jako skutečný zombie.

Zombie jsou v podstatě zbývající kousky mrtvých procesů, které nebyly řádně vyčištěny. Program, který vytváří zombie procesy, není správně naprogramován - programy nemají nechat zombie procesy držet kolem.

Image Credit: Daniel Hollister na Flickr (Remixed)

Co je zombie proces? jaký je zombie proces a co způsobuje zombie procesy, které se objeví, budete muset trochu porozumět tomu, jak procesy pracují na Linuxu.

Když proces umírá na Linuxu, není to vše z paměti okamžitě odstraněno - jeho proces deskriptor zůstává v paměti (deskriptor procesu přijímá pouze malé množství paměti). Stav procesu se stává EXIT_ZOMBIE a nadřazený proces je oznamován, že jeho podřízený proces zemřel pomocí signálu SIGCHLD. Rodičovský proces má potom provést systémový hovor wait (), aby si přečetl stav ukončení mrtvého procesu a další informace. To umožňuje rodičovskému procesu získat informace z mrtvého procesu. Po volání wait () se proces zombie úplně odstraní z paměti.

To se obvykle děje velmi rychle, takže v systému nebudete hromadit zombie procesy. Pokud však rodičovský proces není správně naprogramován a nikdy neumí čekat (), jeho zombie děti budou držet v paměti, dokud nebudou vyčištěny.

Utility jako GNOME System Monitor,

top příkazy a ps příkaz zobrazí zombie procesy. Nebezpečí zombie procesů

Zombie procesy nevyužívají žádné systémové prostředky. (Ve skutečnosti každý z nich používá velmi malé množství systémové paměti pro uložení svého deskriptoru procesu.) Každý proces zombie si však udrží své ID procesu (PID). Systémy Linux mají konečný počet procesních ID - 32767 ve výchozím nastavení na 32bitových systémech. Pokud se zombie hromadí velmi rychle - například když špatně naprogramovaný serverový software vytváří zombie procesy za zatížení - celá skupina dostupných PID se nakonec přidělí k zombie procesům, což zabrání spuštění jiných procesů.

několik zombie procesů visí kolem není žádný problém - ačkoli oni ukazují chybu s jejich rodičovský proces ve vašem systému.

Zbavte se zombie procesů

Nemůžete zabít zombie procesy, jak můžete zabít normální procesy s SIGKILL signál - zombie procesy jsou již mrtvé. Mějte na paměti, že se nemusíte zbavovat zombie procesů, pokud nemáte na vašem systému velké množství - několik zombií je neškodné. Existuje však několik způsobů, jak se zbavit zombie procesů.

Jednou cestou je zaslání signálu SIGCHLD do rodičovského procesu. Tento signál říká, že rodičovský proces provádí systémové volání wait () a vyčistí jeho děti zombie. Odeslání signálu příkazem

kill , který nahrazuje pid v příkazu PID rodičovského procesu: kill -s SIGCHLD pid

't správně naprogramované a ignoruje signály SIGCHLD, to nepomůže. Budete muset zabít nebo zavřít nadřazený proces zombie. Když proces, který vytvořil zombie, skončí, init zdědí zombie procesy a stane se jejich novým rodičem. (init je první proces, který byl spuštěn na Linuxu při spuštění a byl mu přidělen PID 1.) init periodicky provádí čekací () systémový hovor k vyčištění svých zombie dětí, takže init bude krátkou práci zombie. Rodičovský proces můžete restartovat po jeho zavření.

Pokud rodičovský proces nadále vytváří zombie, měl by být opraven tak, aby správně volal wait (), aby zúročil své zombie děti. Nahrajte zprávu o chybě, pokud program ve vašem systému stále vytváří zombie.


Jak opravit zařízení USB není rozpoznán v systému Windows

Jak opravit zařízení USB není rozpoznán v systému Windows

Získáváte chybu " USB zařízení není rozpoznáno " při připojení USB myši, klávesnice, fotoaparátu nebo jiného zařízení? Nemůžu žít bez USB portů a v současné době mám v počítači 5 portů, takže mohu připojit myš, klávesnici, fotoaparát, telefon a tiskárnu k tomu najednou!Pro ty z vás, kteří mají ještě více

(How-to)

Jak nastavit Spotify jako svého výchozího poskytovatele hudby na Amazon Echo

Jak nastavit Spotify jako svého výchozího poskytovatele hudby na Amazon Echo

Až dosud, pokud jste chtěli hrát hudbu Spotify na Amazon Echo, museli jste říct umělce nebo píseň chtěl hrát a nakonec se na "Spotify" na konci. Je to trochu těžkopádné, ale teď už to nemusíte dělat, protože můžete nastavit Spotify jako výchozího poskytovatele hudby Echo. Echo používá ve výchozím nastavení Amazon Music vždy, když ji požádáte, aby přehrával skladbu, ale po vás nastavit Spotify jako výchozího poskytovatele hudby, můžete jednoduše říct něco jako "Alexa, hrát The Weeknd" a začne to hrát od Spotify namísto Amazon Music.

(how-to)