Tengo algunos procesos que aparecen como <defunct>
en top
(y ps
). He reducido las cosas de los scripts y programas reales.¿Por qué los procesos generados por cron acaban sin funcionar?
En mis crontab
:
* * * * * /tmp/launcher.sh /tmp/tester.sh
El contenido de launcher.sh
(que es, por supuesto, marcado como ejecutable):
#!/bin/bash
# the real script does a little argument processing here
"[email protected]"
El contenido de tester.sh
(que es, por supuesto, marcada ejecutables):
#!/bin/bash
sleep 27 & # the real script launches a compiled C program in the background
ps
muestra lo siguiente:
user 24257 24256 0 18:32 ? 00:00:00 [launcher.sh] <defunct>
user 24259 1 0 18:32 ? 00:00:00 sleep 27
Tenga en cuenta que tester.sh
no parece - que ha salido después de lanzar el trabajo en segundo plano.
¿Por qué launcher.sh
se quedan, marcados <defunct>
? Solo parece hacer esto cuando se inicia por cron
--no cuando lo ejecuto yo mismo.
Nota adicional: launcher.sh
es una secuencia de comandos común en el sistema en el que se ejecuta, que no se modifica fácilmente. Las otras cosas (crontab
, tester.sh
, incluso el programa que ejecuto en lugar de sleep
) se pueden modificar mucho más fácilmente.
Por cierto, los procesos que marcó "' '" se llaman "zombies". –
Teddy
Una solución posible se dan en este hilo: http://stackoverflow.com/questions/3748432/insane-crond-behavior-keeps-making-defunct-bash-processes –