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

Re: Procesos defunct y como evitarlos



El 06/07/11 00:14, ZorroPlateado escribió:
> On Martes, 5 de Julio de 2011 11:41:26 usted 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?
>
> Me he puesto a revisar el contenido del script catalina.sh que acompaña a 
> alfresco y veo que lanza el proceso java con sus parametros haciendo uso de 
> "exec" con lo que ello implica segun el manual de bash.... 
>
> Por cierto el proceso defunct es el script inicial llamado desde cron, aqui 
> una lista del estado de procesos:
>
> root      2872     1  0 21:08 ?        00:00:00 /bin/sh /usr/bin/soffice -
> accept=socket,host=localhost,port=8100;urp;StarOffic
>
> root      2923     1  1 21:08 ?        00:01:14 /usr/lib/jvm/java-1.5.0-
> sun/jre//bin/java -Djava.util.logging.manager=org.apac
>
> root      2949  2872  0 21:08 ?        00:00:00 
> /usr/lib/openoffice/program/soffice.bin -accept=socket,host=localhost,port=810
>
> root     19222     1  0 May01 ?        00:00:08 /usr/sbin/cron
>
> root     20110     2  0 02:05 ?        00:00:03 [pdflush]
>
> root     32583 19222  0 20:24 ?        00:00:00 /USR/SBIN/CRON
> root     32584 32583  0 20:24 ?        00:00:00 [backup-diferenc] <defunct>
> 104      32587 32583  0 20:24 ?        00:00:00 /usr/sbin/sendmail -i -
> FCronDaemon -oem root
> root     32719     2  0 20:24 ?        00:00:07 [pdflush]
>
>

Hola,

si ejecutas la tarea a mano, igual que la lanza cron ¿Se queda en el
mismo estado? Prueba a lanzarla con sh -x y si la salida no es demasiado
extensa envíala en un correo.

Estando el proceso zombie, prueba a enviarle un SIGHUP a cron, a ver que
hace.

Un saludo.



Reply to: