Enviar SIGTERM a `script` da como resultado un proceso zombie

Enviar SIGTERM a `script` da como resultado un proceso zombie

Estoy implementando un sistema simple para ejecutar trabajos de forma remota a través de SSH. Mi objetivo es ejecutar el trabajo dentro de screeny registrar todos sus resultados usando scripty cargar el texto mecanografiado en un servidor cuando finalice el trabajo. Sin embargo, estoy teniendo dificultades para manejar SIGTERM correctamente (por ejemplo, cuando la máquina remota está a punto de apagarse) ya que el scriptproceso no finaliza al recibir SIGTERM (en lugar de eso, el proceso que se ejecuta dentro scriptse convierte en un zombi).

Asuma el siguiente comando:

script -e -q -c 'ping www.google.com'

Usar killall -TERM scriptpara enviar una señal SIGTERM al scriptproceso parece pasar la señal SIGTERM ping(que termina), sin embargo, se convierte en un proceso zombie y scriptno termina:

> ps -aux | grep ping
karel    16460  0.0  0.0  10852  2732 pts/2    S+   12:57   0:00 script -e -q -c ping www.google.com
karel    16461  0.1  0.0      0     0 ?        Zs   12:57   0:00 [ping] <defunct>

Si lo entiendo correctamente, el pingproceso es un zombie porque el scriptproceso padre todavía lo está observando. Sin embargo, ¿es posible dejar de scriptobservar el proceso y finalizarlo correctamente (mientras se vacía el texto mecanografiado)?

información relacionada