CRON INTERACTIVO

Luis Roa lar004 en indra.cl
Vie Ago 6 11:49:56 CLT 2004


> BUENAS TARDES, ALGUIEN QUE ME PUEDA AYUDAR, SOBRE UNAS TAREAS QUE
> DEBEN CORRER CADA CIERTO TIEMPO, TENGO ENTENDIDO QUE EL CRON NO
> PUEDE EJECUTAR TAREAS ITERACTIVAS, ES DECIR QUE SI LLAMO A UN
> PROGRAMA EJECUTABLE EN C, QUE A SU VEZ ÉSTE CORRE UN PROGRAMA DE
> IMPORTACIÓN DE DATOS QUE DURA 4 MIN, LUEGO TERMINA EL PROGRAMA
> Y SALE DEL PROGRAMA EJECUTABLE VOLVIENDO AL SHELL DE LINUX, CUANDO
> LO REGISTRO EN LAS TAREAS Y VEO EL LOG SI SE EJECUTA PERO NO
> CORRE EL PROGRAMA EN C, ¿CÓMO PODRÍA CORRER ESTE PROGRAMA?
> GRACIAS
>
>

En primer lugar no debes gritar si es que tienes el minimo deseo de que te
respondan, y utilizar las mayuscular aqui == gritar.

Si tienes claro que es interactividad, obviamente entenderas que cron no te
permite interactuar, pues su finalidad es otra y no necesita ser interactivo.
El problema que tienes, seguro te genero algun mensaje en tu email o en el de
root dependiendo de como esta configurada tu tarea, e imagino, ya que no das
mucha informacion, que tu programa en C no fue cargado porque no fue encontrado.
Esto ocurre porque tu tarea no corrio con las variables de ambiente (entorno)
con que corre si lo pruebas interactivamente, luego el PATH no corresponde con
lo que necesitas.
La forma correcta de ejecutar tu aplicacion es hacer un script que solucione
todo eso, mas algun otro requerimiento de tu proceso, como puede ser el
contenido de otras variables, el directorio residente, etc.
Luego lo que programas como tarea en el cron es la ejecucion de ese script.

Para  que puedas "probar" lo que afirmo y captes adecuadamente el concepto, te
sugiero correr en el cron algo asi como:

* * * *  /usr/bin/env > archivo.log

Luego revisas el contenido de archivo.log generado de ese modo y lo comparas con
el resultado de ejecutar el mismo comando interactivamente.

Saludos
LRP



Más información sobre la lista de distribución Linux