Re: Procesos defunct y como evitarlos
El 05/07/11 11:41, ZorroPlateado escribió:
> Tengo en Debian una instalación de Alfresco, el caso es que tengo un script
> para backups ejecutado desde cron, este script de backup para Mysql y Alfresco
> y luego copia sus archivos, posteriormente inicia los dos servicios.
>
> El caso es que el orden de los scripts bash ejecutados es el siguiente:
>
> /etc/init.d/alfresco start
> ||
> ||
> ===> /mnt/almacen/alfresco/alfresco.sh start
> ||
> ||
> ===> /mnt/almacen/alfresco/tomcat/bin/catalina.sh
>
>
> Pues bien el script backup usar /etc/init.d/alfresco/ start|stop . Y en
> alfresco.sh encontramos un `nohup catalina.sh`.
>
> El script de backup se ejecuta entero y alfresco es inciado sin problemas,
> recibo el email del cron con toda la ejecución. El problema está en que el
> proceso de backup aparece como defunct ya que es padre del proceso java de
> alfresco que hasta que no termine no cierra el proceso de backup.
>
> He lido que el proceso defunc no consume recursos y solo existe mientras el
> proceso hijo no termine, con lo cual no deberia de ser ningun problema.
>
> Pero pregunto, ¿se puede hacer que en la llamada al script catalina.sh su
> proceso padre sea por ejemplo init y de este modo el backup termine?
>
>
Hola,
si no recuerdo mal los procesos defunc son procesos que han terminado y
cuyo padre no ha capturado la salida del mismo, lo que devuelve return o
exit se entiende, y el único recurso que consume es una entrada en la
tabla de procesos y por lo tanto un id. Para quitarlos definitivamente
tienes que matar el proceso padre, de modo que init se haga cargo del
mismo y capture SIGCHLD dando puerta al proceso.
¿Podrías pegar la salida de ps auxf relativa al proceso y sus
antepasados cuando el proceso este en ese estado? Quiza asi veamos
claramente de que depende y como podrías deshacerte de él, seguramente
reiniciando el servicio que lo lanza.
Un saludo.
Reply to: