2012-10-07 33 views
8

En Linux, ¿hay alguna forma de ejecutar un trabajo cron en primer plano (o modo interactivo)? (Tengo un programa que se ejecuta periódicamente para aceptar la entrada del usuario y hacer algún procesamiento. Por lo tanto, quiero programarlo como un trabajo cron que se puede ejecutar en primer plano).Linux: ejecutar cron job en primer plano

+0

¿Cómo espera que 'cron' se comunique con usted? Abrir un terminal, iniciar una aplicación GUI, etc. –

+0

Abrir un terminal me funcionaría. En realidad, no quiero hacer una aplicación de GUI sofisticada. Mi pensamiento es el siguiente: si ejecuto el programa manualmente desde un shell, puedo dar entrada de forma interactiva. Quiero poder hacer lo mismo cuando el programa se ejecuta automáticamente. – Neo

+0

Puede que le interese 'expect' http://www.tcl.tk/man/expect5.31/expect.1.html pero no estoy seguro de que sea una buena idea usarlo. –

Respuesta

9

Trate de hacer esto en su usuario crontab:

@hourly DISPLAY=:0 xterm -e /path/to/my/script.sh 

Abrirá (cada hora) un xterm con la ejecución de su script, y saldrá cuando salga su script. Por supuesto, debe modificar la pieza @hourly para adaptarla a sus necesidades.

+0

¡Funciona! Justo lo que quería. Gracias Renato. – Neo

1

Suponiendo que está ejecutando X, siempre podría tener que abrir una ventana en una pantalla seleccionada.

+0

Supongo, te refieres a Mac OS X. Estoy usando Ubuntu. Sin embargo, me gustaría que mi script funcione tanto en Ubuntu como en Mac OS X. – Neo

+2

Quise decir X windows, http://en.wikipedia.org/wiki/X_Window_System, y probablemente lo esté usando – Ofir

+0

Sí. Supongo que eso también es lo que otros han sugerido. Gracias. – Neo

2

Para GUI guiones en cron, pruebe la línea siguiente en un shell:

crontab -e 

Luego, en crontab:

0 7 * * * DISPLAY=:0 /PATH/TO/SCRIPT 
+0

Adapte a sus necesidades, seguro;) –

+0

Intenté lo mismo, pero todavía parece funcionar en segundo plano. Gracias por su respuesta de todos modos. – Neo

Cuestiones relacionadas