GNU/Linux >> Znalost Linux >  >> Linux

Proč nemohu tento proces v Linuxu zabít?

Odpověď na otázku číslo 1:

Když proces vytvoří podřízené procesy, každý z nich má svůj vlastní PID. PPID každého potomka (id nadřazeného procesu) je PID jejich nadřazeného procesu. Pokud rodič zemře, potom podřízené procesy osiří. Osiřelé procesy jsou automaticky sbírány procesem inicializace systému, který má PID 1.


Problém

Váš skript pravděpodobně vytváří zombie kvůli vašemu kill -9 příkazy; jak je navrženo z odpovědi jjlin, také není nikdy dobrým zvykem náhle zabít nějaký proces, aniž byste k tomu byli nuceni.

Od man bash můžeme číst:

Procesy označené jsou mrtvé procesy (takzvané "zombie ), které zůstanou, protože je jejich rodič řádně nezničil .Tyto procesy budou zničeny init(8) pokud se nadřazený proces ukončí.

Odpověď č. 1: Proces spustíPID 1 a proto jim Linux přiřadí rodiče s PID 1 (protože jim přiřadí init ).

Odpověď č. 2: Nelze je zabít jednoduše protože jsou prostě mrtví ... pokud je jejich rodič init pravděpodobně stačí chvíli počkat.

Chcete-li odstranit zombíky ze systému, signál SIGCHLD může být odeslán rodičovi ručně pomocí příkazu kill. Pokud nadřazený proces stále odmítá sklízet zombie, dalším krokem by bylo odstranění nadřazeného procesu. Když proces ztratí svého rodiče, init se stane jeho novým rodičem. Init pravidelně provádí systémové volání wait, aby sklidilo všechny zombie s init jako rodičem. [1]

Pro případ, že by se jednoho dne objevila tato myšlenka:do #kill -9 init proces s oprávněním root je software ekvivalentní fyzickému odpojení počítače od elektrické sítě. [:-)]

Nicméně zombie procesy lze identifikovat ve výstupu ps příkaz přítomností "Z" v STAT sloupec. K jejich snadné identifikaci můžete použít následující řádek

ps -aux | grep Z

Některé odkazy na Linuxový svět zombie :

  • Existuje nějaký způsob, jak zabít proces zombie bez restartu?
  • Co jsou procesy zombie
  • Jak zabít proces zombie
  • [1] Z mnoha zdrojů na internetu

Linux
  1. Linux – Kdy nemám zabít -9 A proces?

  2. Příklady příkazů kill v Linuxu

  3. Jak zabít zombie proces

  1. Jak zabít proces zombie na Linuxu

  2. Linux, proč nemohu najít výsledek potrubím do rm?

  3. Jak pozastavit/obnovit proces v Linuxu

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

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

  3. Proč podřízený proces stále žije poté, co byl nadřazený proces v Linuxu zabit?