Enviar SIGTERM para `script` resulta em um processo zumbi

Enviar SIGTERM para `script` resulta em um processo zumbi

Estou implementando um sistema simples para executar trabalhos remotamente via SSH. Meu objetivo é executar o trabalho dentro de um screene registrar toda a sua saída usando scripte fazer upload do texto digitado para um servidor quando o trabalho terminar. Estou, no entanto, lutando para lidar com o SIGTERM corretamente (por exemplo, quando a máquina remota está prestes a desligar), pois o scriptprocesso não termina ao receber o SIGTERM (em vez disso, o processo executado scripttorna-se um zumbi).

Suponha o seguinte comando:

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

Usar killall -TERM scriptpara enviar um sinal SIGTERM para o scriptprocesso parece passar o sinal SIGTERM para ping(que termina), porém, torna-se um processo zumbi e scriptnão 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>

Se bem entendi, o pingprocesso é um zumbi porque o scriptprocesso pai ainda o está observando. No entanto, é possível parar de scriptobservar o processo e encerrá-lo normalmente (enquanto libera o texto digitado)?

informação relacionada