¿Por qué hay muchos procesos zombies en el subsistema de Windows para Linux (WSL)? ¿Cómo matarlos totalmente?

¿Por qué hay muchos procesos zombies en el subsistema de Windows para Linux (WSL)? ¿Cómo matarlos totalmente?

Recientemente, encontré que mi WSL (ZSHELL) cuesta muchos recursos de CPU (alrededor del 35%) a través del administrador de recursos de Windows.

Luego trato de descubrir y resolver este problema de la siguiente manera:

  ~ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Mar28 ?        00:00:00 /init ro
root         3     1  0 Mar28 tty1     00:00:00 /init ro
mbinary      4     3  0 Mar28 tty1     00:00:12 -zsh
mbinary     48     1  0 Mar28 tty1     00:00:00 [awk] <defunct>
mbinary     66     1  0 Mar28 tty1     00:00:00 [awk] <defunct>
mbinary    173     1  0 Mar29 tty1     00:00:00 [awk] <defunct>
mbinary    225     1  0 Mar29 tty1     00:00:00 [awk] <defunct>
mbinary    431     1  0 09:45 tty1     00:00:00 [awk] <defunct>
root      6845     1  0 09:53 tty2     00:00:00 /init ro
mbinary   6846  6845  0 09:53 tty2     00:00:04 -zsh
mbinary   7419  6846  0 10:03 tty2     00:00:00 python3
mbinary   7455     1  0 14:42 tty1     00:00:00 [awk] <defunct>
mbinary   7522     1  0 14:42 tty1     00:00:00 [awk] <defunct>
mbinary   7559     1  0 14:43 tty1     00:00:00 [awk] <defunct>
mbinary   7587     1  0 14:48 tty1     00:00:00 [awk] <defunct>
mbinary   7595     1  0 14:49 tty1     00:00:00 [awk] <defunct>
mbinary   7604     1  0 14:49 tty1     00:00:00 [awk] <defunct>
mbinary   7643     1  0 14:49 tty1     00:00:00 [awk] <defunct>
mbinary   7666     1 97 15:03 tty1     00:00:21 -zsh
mbinary   7670  7666  0 15:03 tty1     00:00:00 [awk] <defunct>
mbinary   7699     4  0 15:03 tty1     00:00:00 ps -ef
➜  ~ sudo kill -9 1
➜  ~ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Mar28 ?        00:00:00 /init ro
root         3     1  0 Mar28 tty1     00:00:00 /init ro
mbinary      4     3  0 Mar28 tty1     00:00:12 -zsh
mbinary     48     1  0 Mar28 tty1     00:00:00 [awk] <defunct>
mbinary     66     1  0 Mar28 tty1     00:00:00 [awk] <defunct>
mbinary    173     1  0 Mar29 tty1     00:00:00 [awk] <defunct>
mbinary    225     1  0 Mar29 tty1     00:00:00 [awk] <defunct>
mbinary    431     1  0 09:45 tty1     00:00:00 [awk] <defunct>
root      6845     1  0 09:53 tty2     00:00:00 /init ro
mbinary   6846  6845  0 09:53 tty2     00:00:04 -zsh
mbinary   7419  6846  0 10:03 tty2     00:00:00 python3
mbinary   7455     1  0 14:42 tty1     00:00:00 [awk] <defunct>
mbinary   7522     1  0 14:42 tty1     00:00:00 [awk] <defunct>
mbinary   7559     1  0 14:43 tty1     00:00:00 [awk] <defunct>
mbinary   7587     1  0 14:48 tty1     00:00:00 [awk] <defunct>
mbinary   7595     1  0 14:49 tty1     00:00:00 [awk] <defunct>
mbinary   7604     1  0 14:49 tty1     00:00:00 [awk] <defunct>
mbinary   7643     1  0 14:49 tty1     00:00:00 [awk] <defunct>
mbinary   7666     1 99 15:03 tty1     00:00:25 -zsh
mbinary   7670  7666  0 15:03 tty1     00:00:00 [awk] <defunct>
mbinary   7712     4  0 15:03 tty1     00:00:00 ps -ef

No funciona.

Descubrí que los procesos zombies awkocurren después de usar el comando z.

Información: Windows 10: 1809 WSL: Ubuntu 1804

Respuesta1

Estoy ejecutando Microsoft Windows 10 Pro (64 bits), versión 10.0.18362 y sigo teniendo procesos zsh no autorizados. Esta función mata los procesos zsh no autorizados.

killzshs(){ps ax -o pid,command,ppid | grep '.*zsh.*\s1$' | awk '{print $1}' | xargs kill -9}

Luego llame killzshso coloque la función en sus archivos de puntos.

Respuesta2

Este problema se solucionó en la versión de Windows 10.0.18362.30. Detallesaquí

información relacionada