GNU/Linux >> Znalost Linux >  >> Linux

Jak zabít proces, jehož rodič je init?

Na mém NASu přerušovaně visí přenos. Pokud pošlu SIGTERM, nezmizí ze seznamu procesů a <defunct> vedle něj se objeví štítek. Pokud pošlu SIGKILL, stále nezmizí a nemohu ukončit nadřazený prvek, protože nadřazený je init . Jediný způsob, jak se zbavit procesu a restartovat Transmission, je restartovat.

Uvědomuji si, že to nejlepší, co mohu udělat, je pokusit se opravit Transmission (a to jsem zkoušel), ale jsem v kompilaci začátečník a chtěl jsem se ujistit, že mé torrenty skončily, než se s tím začnu motat.

Přijatá odpověď:

Nemůžete zabít <defunct> proces (také známý jako zombie proces), protože je již mrtvý. Systém uchovává zombie procesy pro rodiče, aby shromáždil stav ukončení. Pokud rodič nezjistí stav ukončení, procesy zombie zůstanou navždy. Jediný způsob, jak se zbavit těchto zombie procesů, je zabít rodiče. Pokud je rodič init, můžete pouze restartovat.

Zombie procesy nezaberou téměř žádné zdroje, takže jejich prodlévání nestojí za výkon. Ačkoli přítomnost zombie procesů obvykle znamená, že v některých vašich programech je chyba. Init by měl obvykle shromáždit všechny děti. Pokud má init děti zombie, pak je v init chyba (nebo je to něco jiného než chyba).

http://cs.wikipedia.org/wiki/Zombie_process


Linux
  1. Jak zabít proces v Linuxu pomocí příkazu?

  2. Jak funguje životní cyklus procesu Linux – nadřazený, podřízený a iniciační proces

  3. Linux:Najděte a zabijte zombie procesy

  1. Jak zabít proces zombie na Linuxu

  2. Jak zabít zombie proces

  3. Jak zabít <zaniklý> proces s rodičem 1

  1. Jak najít a zabít zombie proces v Linuxu

  2. Co jsou zombie procesy a jak najít a zabít zombie procesy?

  3. Jak nastavím pracovní adresář nadřazeného procesu?