[Ubuntu-pa] El script en python

Juan Guerrero ryoma.nagare en gmail.com
Mie Sep 5 18:54:07 BST 2007


Eivar,

acabo de ver tu codigo, en python como funciona el popen? es igual que en C?
es decir, si hago un popen el comando se ejecuta y queda activo hasta hacer
un pclose ? En este caso cuando otro admin haga shutdown -c permite validar
el cierre del shutdown, seria genial porque desde la GUI podria uno
matenerse leyendo la salida y mandar un popup cuando se reciba la cadena de
shutdown cancelled, sin embargo, me preocupa que el codigo no seria
internacionalmente standard, hay que pensar en un mejor metodo para validar
la cancelacion, despues de todo a un sistema multiusuario no se le puede
quitar lo multiusuario.

Mario,
el crontab, genial!!! cierto se va a requerir un parser, a mi modo de ver no
es muy complicado, pero al menos este parser debe reconocer las lineas que
agrego para borrarlas o modificarlas segun o que se quiera hacer y si te
fijas las unicas operaciones a hacer con el serian:
1. Eliminar la entrada completa del crontab (requeriria alguna
identificacion, de repente un comentario?)
2. Cambiar los parametros de recurrencia que en si es bastante simple los 5
primeros campos comparten una sintaxis similar
Creo que este parser no requiere C/C++ no habria ninguna ganancia ni la
sintaxis del crontab es muy complicada como para requerir velocidad en el
analisis, pienso que en este caso puede incluso demorar el desarrollo.
Tambien vi que inicialmente Eivar planea usar glade asi que como que Qt esta
fuera del escenario, por otro lado hay pyQt, pero creo q le toca a Eivar
decidir si desea cambiar el toolkit y el lenguaje de programacion.

Eivar,

Retomando lo que te comente hace algun momento mas la contribucion de Mario:
1. Recurrencia: parser => crontab, sabes si hay alguna libreria en python
que te pueda ayudar con eso?
2. Para ver lo de la cancelacion el shutdown -c funciona pero desde la GUI
habria que verificar que se cancelo el shutdown local, cuando esto sucede si
tu instalacion esta en ingles el shutdown envia lo siguiente:
shutdown: Shutdown cancelled
Ya que estas usando popen (y si es q funciona como en C) puedes mantener un
loop leyendo el output y atrapar esa cadena para saber que fue cancelo y
envar un popup al usuario de pyShutodwn diciendo que hubo una cancelacion
remota. OJO esto no funciona si el shutdown esta traducido a español u otro
lenguaje.
3. El tema de multiusuario en realidad es transparente ya que como tu
backend es el shutdown mismo, si te fijas arriba aun si corren shutdown -c
desde la CLI tu programa sigue funcionando lo unico es que para tu
pyShutdown local tendrias que manejar la cancelacion desde algun thread o
enviarle un signal al shutdown activo para cancelarlo, igonoro como se haria
eso en python. Si tienes otro usuario en una sesion remota corriendo
pyShutdown y este hace cancel desde la interfaz grfica, si esta maneja el
cancel mediante shutdown -c  la instancia principal lo maneja del modo que
comente enantes.
Creo que el problema con el #3 seria como enviar un shutdown -c cuando
tienes un shutdown activo, C/C++ lo que yo haria seria correr cualquier
shutdown -h desde un thread, tenieno en la GUI un boton de cancel q cuando
se presiones haga un shutdown -c terminaria el thread local y por ende el
shutdown mismo, no se como podrias traducir eso a python.

Eivar, tambien comentaste algo sobre activar el shutdown bajo la condicion
de finalizacion de otro proceso, alli te puedes ayudar con el comando ps o
bien haciendo un parsing de /proc, en /proc todos los archvos numericos
corresponden a PIDs de comandos, en ese caso seria de ver que el file cuyo
PID corresponde con el proceso a monitorear cesa de existir y BAM!!!! le das
un shutdown -h, por el lado del ps posiblemente tendrias que hacer un
parsing sencillo, pero por lo de proc, si fuera en C, yo utilizaria access y
si retorna diferente de 0 es porque el programa ya ceso de existir, no se si
en python seria igual.

Gente, creo q tenemos algo q podemos compartir!!!!!

Saludos

On 9/5/07, Eivar Montenegro Mosquera <e.mont01 en gmail.com > wrote:
>
> Mario tienes que entrar en la sección de proyectos.
> De todas formas te adjunto el script en python que programa el apagado del
> pc usando el comando shutdown.
>
> Los demás de la lista también lo pueden observar para que vean que tenemos
> ya, solo falta una interfaz gráfica y adaptar este código que les adjunto a
> la interfaz que usemos.
>
> El día 5/09/07, Mario Young <maye.co en gmail.com > escribió:
> >
> >
> >
> > Saludos,
> >
> > Existe la posibilidad de hacer que cualquier comando sea recurrente...
> > con el cron, en mi
> > caso yo tengo configurado para que siempre a las 3:am se apague la
> > computadora todos
> > los días como se puede hacer esto con el archivo /etc/crontab donde
> > pueden ver como
> > funciona aca http://en.wikipedia.org/wiki/Crontab en mi caso es asi:
> >
> > 0 3 * * *    root    /sbin/shutdown -h now
> >
> > # Use the hash sign to prefix a comment
> >
> > # +---------------- minute (0 - 59)
> > # |  +------------- hour (0 - 23)
> > # |  |  +---------- day of month (1 - 31)
> > # |  |  |  +------- month (1 - 12)
> > # |  |  |  |  +---- day of week (0 - 7) (Sunday=0 or 7)
> >
> >
> >
> >
> > # |  |  |  |  |
> > # *  *  *  *  *  command to be executed
> >
> >
> > De esta forma se podría hacer que el comando se ejecute recurrentemente,
> > toca hacer un
> > "parser" de este archivo y una GUI para la configuración, personalmente
> > prefiero C/C++ y Qt4
> >
> > Eivar:
> > Todavía no encuentro ningún código en la pagina de la fraternidad, si
> > tienes
> > algún tiempo enviarlo a mi correo y voy creando el proyecto en
> > launchpad.
> >
> > Saludos,
> >
> > MY
> >
> >
> >
> >
> >
> > On 9/5/07, Juan Guerrero <ryoma.nagare en gmail.com > wrote:
> > >
> > > Ok, entonces estamos hablando de una aplicacion que simplemente uno
> > > levanta, le configura la opcion de apagado y ella finalmente apaga la PC
> > > cuadno la condicion se cumple, asumo que luego de la programacion habria que
> > > incluir algun metodo para cancelar el apagado tambien.
> > > Dime algo, dentro de plan, tienes contemplado hacer que esto sea
> > > recurrente? es decir. Todos los lunes apagarse cuando el proceso X (mplayer,
> > > vlc, xine) termina? O de repente todos los domingo apagarse a las 2:00 am?
> > > La parte de el apagado condicional ya la maneja el mismo comando
> > > shutdown como tal asi que pienso que la principio seria solo un frontend del
> > > mismo.
> > > Otra cosa, estoy viendo que de la forma como estas conceptualizando el
> > > programa lo estas contemplando en un ambiente donde una sola persona tiene
> > > acceso de administracion, que ocurre si la PC en cuestion es operada por 2
> > > personas y la segunda tiene una sesion de SSH abierta cuando pyShutdown esta
> > > activo, se le daria a este segundo usuario una opcion de cancelar el
> > > shutdown?
> > > Ya tienes algo adelantado?
> > >
> > >
> > > Saludos
> > >
> > > On 9/5/07, Eivar Montenegro Mosquera < e.mont01 en gmail.com> wrote:
> > >
> > > > Bueno la idea de PyShutdown es crear un front-end para el comando
> > > > Shutdown que te permita usar las funcionalidades de dicho comando,
> > > > principalmente programar el apagado automático del pc después de un tiempo
> > > > dado.
> > > >
> > > > Es común que a veces nos quedamos haciendo algo en el pc, como ver
> > > > una película, o que tenemos que salir y dejar la pc encendida haciendo una
> > > > tarea y bueno tenemos el comando para programar el apagado así que se me
> > > > ocurrió ¿por que no? Crear una herramienta gráfica donde hacer esa misma
> > > > tarea.
> > > >
> > > > Estaba pensando en que en el futuro se podría hacer que el programa
> > > > de alguna forma pudiese esperar a que un proceso terminara para luego apagar
> > > > el pc.
> > > >
> > > > Bueno ¿qué les parece la idea?...
> > > > --
> > > > Eivar A. M. M.
> > > > --
> > > > Ubuntu-pa lista de correos
> > > > Comunidad Local de Ubuntu GNU/Linux de Panama
> > > > Ubuntu-pa en lists.ubuntu.com
> > > > Modifique su configuracion: https://lists.ubuntu.com/mailman/listinfo/ubuntu-pa
> > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > Juan V. Guerrero
> > > --
> > > Ubuntu-pa lista de correos
> > > Comunidad Local de Ubuntu GNU/Linux de Panama
> > > Ubuntu-pa en lists.ubuntu.com
> > > Modifique su configuracion:
> > > https://lists.ubuntu.com/mailman/listinfo/ubuntu-pa
> > >
> > >
> > --
> > Ubuntu-pa lista de correos
> > Comunidad Local de Ubuntu GNU/Linux de Panama
> > Ubuntu-pa en lists.ubuntu.com
> > Modifique su configuracion: https://lists.ubuntu.com/mailman/listinfo/ubuntu-pa
> >
> >
> >
>
>
> --
> Eivar A. M. M.
> --
> Ubuntu-pa lista de correos
> Comunidad Local de Ubuntu GNU/Linux de Panama
> Ubuntu-pa en lists.ubuntu.com
> Modifique su configuracion:
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-pa
>
>
>


-- 
Juan V. Guerrero
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://lists.ubuntu.com/archives/ubuntu-pa/attachments/20070905/69c643a8/attachment-0001.htm 


Más información sobre la lista de distribución Ubuntu-pa