[pyar] Script python desde el inicio

Juan A. Diaz juan en linux.org.ar
Dom Ago 29 22:15:04 ART 2010


On Sat, 2010-08-28 at 22:46 -0300, Mario Colque wrote:
> hola amigos!
> les quiero plantear una duda/problema que tengo, probe de varias
> formas pero no logré buenos resultados...
> 
> Lo que quiero hacer es iniciar un script python, que muestra una
> ventana con info del sistema, hecha con gtk.
> 
> Pero lo que necesito es que se inicie en cada sesión de la pc pero
> como root, o bien con permisos de root. como sea
> 
> Hasta ahora logré que el script se inicie con uid = 0, root, pero nose
> xq no me abre la ventana, el sccript funciona de principio a fin
> (según el debug que le hice con print's :P), pero no abre ninguna
> ventana ni nada.
> 
> lo hice agregando un lanzador en /etc/init.d
> 
> Será problema de gtk? python? que estaré haciendo mal?
> hay alguna otra forma de hacerlo? algún módulo que no conozca...
> 
> perdon si es OT y no lo etiqueté como debiera.
> 
> gracias y saludos!


yo no voy a responder, sino que voy a hacer preguntas :)

Estas seguro que lo que necesitas es lo que vos estas queriendo hacer?

Por que en lugar de hacer eso, que a mi me parece una cosa super rara,
no pensas el problema desde otra perspectiva?

Algo que vi en el thread es que haces un time.sleep(30), cosa que es muy
mala, por que realmente no podes saber si en todas las maquinas que va a
correr tu programa el entorno va a estar listo en 30 segundos. 

Primero tenes que tener en cuenta cuales son las cosas que necesitas
tener iniciadas antes de poder ejecutar tu programa. En tu caso la más
simple de ver es el servidor X, y seguramente la sesión de un usuario
iniciada. Puedo presuponer que la sesión del usuario se inicia
automáticamente, para simplificar el hecho de que un usuario puede
tardar más de 30 segundos en iniciar su sesión (prendió la maquina y se
fue a fumar un churro, volvió 30 minutos después y cuando inicie su
sesión tu aplicación no va "estar ahí")

Siguiendo con las preguntas, entendes cual es la diferencia entre que un
programa se inicie como root a que lo corra un usuario normal con el
setuid [0] ? Ya te lo pasaron en otro mail y lo descartaste demasiado
rápido.

Es realmente necesario que la aplicación se ejecute como root? sin
entrar en los posibles problemas de seguridad que eso puede implicar.
estas seguro de que es absolutamente necesario? 

Pensaste en usar una arquitectura de cliente servidor para la
aplicación?

Suponiendo que no podes evitar tener que correr parte de la aplicación
como root, podes separar el diseño en dos partes, la que lee los datos y
la que hace la presentación de esos datos comunicándose con la primera.
Si seguís este esquema hacer que tu aplicación se inicie automáticamente
en la sesión de un usuario pasa a ser algo trivial.

PD: Si nos comentas un poco sobre cual es la utilidad de la aplicación
seguramente te podamos dar algunas mejores ideas.

[0] http://es.wikipedia.org/wiki/Setuid

Saludos

nueces...









More information about the pyar mailing list