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

Re: Script en cron.d y parar procesos java



El Mon, 16 Jul 2012 22:33:46 +0200, ElRobe escribió:

> El 12/07/12 17:07, Camaleón escribió:

>>> Tengo programado un scrip de backup que lanzo diariamente desde
>>> cron.d, el caso es que cuando se lanza desde allí el script y tiene
>>> que realizar una parada/inico del servicio java siempre queda el
>>> proceso de backup en modo defunct, ejecuta todo correctamente pero no
>>> se cierra el proceso y se queda colgado en modo defunct.
>>>
>>> ¿Alguien sabe al respecto que pasa con los procesos java y porque
>>> ocurre estos al pararlos desde cron.d?

>> Si el script se ejecuta sin problemas manualmente quizá te falte
>> definir alguna variable de entorno, ya sabes que en las tareas
>> ejecutadas desde cron hay que tener cuidado con esto :-?
>>
> Pues no parece ser por las variables
> 
> export JRE_HOME=/usr/lib/jvm/java-1.5.0-sun/jre export
> JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun/
> 
> ya que las he colocado en el propio script.

Hum... prueba a definirlas en el crontab directamente a ver qué pasa.

Otra cosa que puedes hacer es, para comprobar que la tarea se ejecuta con 
las variables de entorno correctas, imprimir el valor de esas variables 
en algún archivo temporal así descartas definitivamente que el problema 
venga de ahí.
 
> He estado leyendo en google y parece que tiene mas que ver con el fork
> que hace el cron al iniciar el servicio, con la parada no hay error.

Supongo que refieres a esto que comentan por aquí:

http://stackoverflow.com/questions/1506902/why-do-processes-spawned-by-cron-end-up-defunct

Pero entonces no debería afectar sólo a ese script sino a todos los que 
se ejecuten desde una tarea de cron ¿no? ¿te pasa con otros? :-?

> El estado de los procesos en el momento del defunct es el siguiente:
> 
> root     10527  4078  0 20:05 ?        00:00:00 /USR/SBIN/CRON 
> root     10529 10527  0 20:05 ?        00:00:00 [sh] <defunct> 
> 104      10531 10527  0 20:05 ?        00:00:00 /usr/sbin/sendmail -i -FCronDaemon -oem root
> root     10577     1 66 20:05 ?        00:02:24 /usr/lib/jvm/java-1.5.0-sun//bin/java -Xms512m -Xmx1024m
> 
> 
> init─┬─apache2───10*[apache2]
>       ├─apcupsd───{apcupsd}
>       ├─atd
>       ├─cron───cron─┬─sendmail 
>       │             └─sh

Tiene que haber alguna forma de poder cerrar bien ese proceso. ¿Has buscado en 
Google a ver qué se dice/se comenta?

http://bit.ly/LoV8uC

Saludos,

-- 
Camaleón


Reply to: