Bash no parece crear zombies. Parece que los procesos se cosechan de inmediato cuando los matan.
¿Puedo hacer bash hacer zombies?
Por qué estoy preguntando:
Me gustaría poder matar de manera segura un proceso secundario o de forma segura kill -9
si no muere dentro de un cierto período de tiempo, pero no quiero eliminar accidentalmente un proceso que no es mi proceso secundario. Los procesos de zombis generalmente lo hacen muy fácil y seguro para las condiciones de carrera.
unshare
para crear un espacio de nombres PID, de modo que desde dentro de ese árbol de procesos, los procesos externos estén aislados e inaccesibles.kill -KILL %n
dónden
está el número de trabajo, etc.), en lugar de tratar de eludirlo.timeout
comando?Respuestas:
Para hacer un proceso zombie:
Esto reemplaza el shell que se ejecuta
sleep 1
con/bin/sleep 10
eso no sabrá que elsleep 1
proceso terminó, por lo que creará un zombie durante 10 segundos.No estoy seguro de qué esperas de matar un proceso zombie. Un proceso zombie ya estaba muerto, no puedes matarlo.
En realidad, puedes hacer que desaparezcan los procesos zombies, pero matando a su padre, no los procesos zombies mismos.
fuente
Respuesta no tan interesante:
fuente
$BASHPID
es$$
, creo.$BASHPID
No es lo mismo que$$
. Trate siguiente código:echo $$ $BASHPID ;echo $(echo $$ $BASHPID)
. Puedes encontrar más información enman bash
.