[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: