sábado, 15 de junio de 2013

Login automático y ejecución de un programa al inicio en Debian.

Debian



En muchas aplicaciones necesitamos que cuando el sistema operativo termina de iniciar, se ejecute un programa, para ello necesitamos hacer dos cosas: primero "loguearnos" con un usuario y luego ejecutar nuestro programa.



Para comenzar deberemos instalar una aplicación llamada “mingetty” la cual nos permitirá realizar un login automático de un usuario.

 aptitude install mingetty  

Luego deberemos editar el archivo /etc/inittab y cambiar la línea 1, comentando la original:

 #1:2345:respawn:/sbin/getty 38400 tty1  
 1:2345:respawn:/sbin/mingetty --autologin usuario --noclear tty1  
 2:23:respawn:/sbin/getty 38400 tty2  
 3:23:respawn:/sbin/getty 38400 tty3  
 4:23:respawn:/sbin/getty 38400 tty4  
 5:23:respawn:/sbin/getty 38400 tty5  
 6:23:respawn:/sbin/getty 38400 tty6  

Donde dice “usuario” colocar el nombre del usuario que se logueará automáticamente, de esta manera, al iniciar el sistema operativo, la tty1 estará logueada.

Si queremos que una aplicación se ejecute al inicio (después del login), tenemos dos posibilidades:
  • Iniciar una aplicación sin ejecutar previamente un gestor de ventanas.
  • Iniciar una aplicación después de iniciar el gestor de ventanas.
Para Iniciar una aplicación sin ejecutar previamente un gestor de ventanas, solo basta con editar el archivo “.bashrc” que se encuentra dentro del home del usuario en cuestión. Agregaremos al final del mismo la línea que queremos que se ejecute, por ejemplo, un programa en Pyhton:

 python /programas/programa.py  

Si queremos iniciar el gestor de ventanas antes de ejecutar nuestro programa, en el archivo “.bashrc” no deberemos ejecutar nuestro programa, sino ejecutar “xinit” para que se ejecute “X server”, de modo que al final del archivo “.bashrc” colocamos:

 xinit  

A nuestra aplicación no la ejecutaremos en este archivo, sino que editaremos el archivo “.xinitrc” que también se encuentra en el home del usuario, y al final del mismo agregaremos unas líneas para que se ejecute nuestra aplicación y el gestor de ventanas que este instalado:

 exec startlxde  
 exec python /programas/programa.py