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

Re: Procesos defunct y como evitarlos



On Miércoles, 6 de Julio de 2011 08:59:36 Juan Antonio escribió:
> 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.

Al ejecutar la tarea a mano no hay problemas con la parada/inicio. Vamos que 
todo la parrafada viene desde cron. 

He enviado señal al proceso zombie, que están en estado Zs, es decir el script 
de backup, y no admite ningun kill, solo termina tras finalizar el proceso 
alfresco.


La situacion de los procesos en cuestion tras ejecutar parada/inicio es ( en 
este caso he creado un script que solo realice la parada/inicio de alfresco llamado
 inicio-parada-alfresco.sh que aparece como defunct):

root     19222  0.0  0.0   3564   988 ?        Ss   May01   0:08 /usr/sbin/cron
root     18899  0.0  0.0   3908   944 ?        S    16:29   0:00  \_ /USR/SBIN/CRON
root     18900  0.0  0.0      0     0 ?        Zs   16:29   0:00      \_ [inicio-parada-a] <defunct>
104      18913  0.0  0.0   6124  1580 ?        S    16:29   0:00      \_ /usr/sbin/sendmail -i -FCronDaemon -oem root
root     18914  168 13.4 1393024 278916 ?      Sl   16:29   2:27 /usr/lib/jvm/java-1.5.0-sun//bin/java -Xms512m -Xmx1024m -server -XX:CompileCommand=exclude,org/apache/lucene/index/IndexReader$1,doBody -XX:CompileCommand=exclude,org/alfresco/repo/search/impl/lucene/index/IndexInfo$Merger,mergeIndexes -XX:CompileCommand=exclude,org/alfresco/repo/search/impl/lucene/index/IndexInfo$Merger,mergeDeletions -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/mnt/almacen/alfresco/tomcat/conf/logging.properties -Djava.endorsed.dirs=/mnt/almacen/alfresco/tomcat/common/endorsed -classpath :/mnt/almacen/alfresco/tomcat/bin/bootstrap.jar:/mnt/almacen/alfresco/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/mnt/almacen/alfresco/tomcat -Dcatalina.home=/mnt/almacen/alfresco/tomcat -Djava.io.tmpdir=/mnt/almacen/alfresco/tomcat/temp org.apache.catalina.startup.Bootstrap start
root     18916  0.0  0.0   3992  1236 ?        S    16:29   0:00 /bin/sh /usr/bin/soffice -accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager -nologo -headless -nofirststartwizard
root     18936  0.3  1.1 128440 23700 ?        Sl   16:29   0:00  \_ /usr/lib/openoffice/program/soffice.bin -accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager -nologo -headless -nofirststartwizard



																	                             


Reply to: