Aplicacion en segundo plano

Tengo un problemilla con una aplicación que tengo. Es una aplicación de consola que lanza una serie de threads que realizan distintas tareas, y en el momento en que le pulso una tecla, se para. La aplicación la ejecuto a traves de un script que simplemente es una única linea con varios parametros que se le pasa. La pruebo y funciona perfectamente.

Al intentar poner la aplicación para que se inicie junto al inicio de sesión (en gnome), aparentemente parece que no funciona, pero al ver el log de la aplicación veo que se cierra a los pocos segundos. Investigando un poco, he descubierto q si la ejecuto en segundo plano con &, se me para a los pocos segundo [triston] No se, pienso que igual las aplicaciones multithreads no se llevan bien con el segundo plano, o que la shell le envie algún tipo de señal y la aplicación se detenga... ¿se os ocurre algo? ¿se puede lanzar el programa en segundo plano para que ignore todo tipo de señales externas?
Ni idea, pero

¿se os ocurre algo? ¿se puede lanzar el programa en segundo plano para que ignore todo tipo de señales externas?


No veo porque no vas a poder capturar las señales.

De todas formas elucubrando un poco, si la aplicación esta esperando a que pulses una tecla y a la vez se esta ejecutando en segundo plano, tal vez el scheduler, lo haya metido en el saco de procesos detenidos.

He echo un script tonto read var; echo $var, y si lo ejecuto en segundo plano, el proceso se queda detenido, he tenido que mandarlo a primer plano para poder continuar, usando fg
nu_kru escribió:He echo un script tonto read var; echo $var, y si lo ejecuto en segundo plano, el proceso se queda detenido, he tenido que mandarlo a primer plano para poder continuar, usando fg


efectivamente es lo que me pasa, se me queda detenido y solo lo puedo sacar del letargo con fg ¿no habría ninguna forma de que el scheduler no lo detuviera?

He probado tambien a arrancarlo como servicio, y casi funciona... el problema es que en cuanto le doy a una tecla se termina. ¿existe la posibilidad de crear un script para que me bloquee la entrada de datos a la ejecución de un programa? [+risas]
mercucho1 escribió:
He probado tambien a arrancarlo como servicio, y casi funciona... el problema es que en cuanto le doy a una tecla se termina. ¿existe la posibilidad de crear un script para que me bloquee la entrada de datos a la ejecución de un programa? [+risas]


Puedes redireccionar la entrada estandar con "<", prueba algo del estilo programa < /dev/null

Y sino dentro del programa puedes jugar con los descriptores de entrada y salida (fd0,fd1,fd2... uf que tiempos los de sistemas operativos...xdd)
Puedes ejecutarlo con nohup.
también puedes correrlo como un servicio :D
JanKusanagi escribió:Puedes ejecutarlo con nohup.

Gracias por la idea, pero no funciona :(

KiAn escribió:también puedes correrlo como un servicio :D


ya lo probé, pero gracias por la idea de todas formas...
He probado tambien a arrancarlo como servicio, y casi funciona... el problema es que en cuanto le doy a una tecla se termina. ¿existe la posibilidad de crear un script para que me bloquee la entrada de datos a la ejecución de un programa?
6 respuestas