jmarior.net
Visita mi fotolog
Webs asociadas
Artículos destacados

GNU/Linux : Ejecutar programas en el inicio del sistema GNU/Linux

Enviado por jmarior on 5/12/2005 8:00:00 (58420 Lecturas) Artículos del mismo redactor

He estado investigando sobre cómo ejecutar un programa al inicio de un sistema GNU/Linux. Existen varias formas de hacerlo según nuestras necesidades, ya sea en el inicio del sistema como un servicio (sin necesidad que un usuario inicie la sesión), al inicio de sesión de consola o al comenzar una sesión X, por ejemplo de GNome o de KDE.

Ejecutar un programa al inicio de una sesión Bash
Si queremos que se ejecuten ciertos comandos al inicio de nuestra sesión shell creamos el fichero "$HOME/.bashrc" con permisos exclusivos al usuario y atributo de ejecución. Apreciad el . inicial de ".bashrc", esto lo constituye como un archivo oculto.

touch $HOME/.bashrc
chmod 700 $HOME/.bashrc
vi $HOME/.bashrc


El script de inicio podría contener algo como un mensaje de bienvenida:

#!/bin/bash
echo Bienvenido $USER! $HOSTNAME está listo para ti.


Ejecutar un programa al inicio de una sesión X de KDE
Ejecutar programas al inicio de KDE es tan sencillo como crear un acceso directo al programa en cuestión en $HOME/.kde/Autostart/

Ejecutar un programa al inicio de una sesión X de GNOME
En Ubuntu tenemos una interface gráfica muy sencilla para configurar los programas de autoarranque. No sé si esto se aplica en general al entorno GNome. Basta con ejecutar el menú Sistema | Preferencias | Sesiones y en la pestaña "Programas al inicio" podrás añadir o quitar los comandos preferidos al inicio.

Ejecutar un programa al inicio del sistema

Un ejemplo: necesitamos ejecutar el demonio que mantiene actualizado el DNS dinámico del servicio de www.no-ip.com (/usr/local/bin/noip2) deberemos crear un script en /etc/init.d por ejemplo de nombre no-ip, como el que os muestro más abajo. El propietario debe ser root y requiere permisos de ejecución.

#!/bin/sh
. /lib/lsb/init-functions
log_begin_msg "Iniciando demonio DNS dinámico"
/usr/local/bin/noip2
log_end_msg $?
exit 0


Es un script sencillo, dónde la llamada a ". /lib/lsb/init-functions" nos proporciona la capacidad de utilizar funciones de salida por pantalla al estilo del inicio de Linux con mensajes como log_begin_msg "Iniciando..." y su correspondiente [ok] o [fail] producido por "log_end_msg $?"
La última línea "exit 0" proporciona una salida digna del script.

Ahora deberemos crear un link simbólico en el runlevel que nos interesa, en este caso el 2 que es el nivel multiusuario.

ln -s /etc/init.d/no-ip /etc/rc2.d/S80no-ip

la nomenclatura "S80no-ip" es sencilla:
S se refiere a que se ejecute en el start del sistema
99 es el orden de ejecución con respecto a los otros S
no-ip es un nombre arbitrario que puede coincidir o no con el original

Ahora lo mejor será que probéis cualquiera de los mecanismos propuestos para adaptarlos a vuestras necesidades.

Para saber más sobre el inicio, /etc/init.d y los estados del sistema
Departamento de tecnología y computación de la Universidad de Alicante

Fuentes: www.ubuntu-es.org y otras

Recomiéndanos en menéalo - fresqui - barrapunto.com
Recommend it in del.icio.us - digg.com - technorati

Enlace original a esta noticia


Artículo anterior - Artículo siguiente Versión imprimible Enviar a un amigo Crea un documento PDF con el artículo
Los comentarios son propiedad de quien los envió. No somos responsables por su contenido.

Noticias anteriores

jmarior.net web XXI - La aventura de pasarse totalmente a software libre RSS 2.0 Sindicarse
Creado por jmarior con Ubuntu Linux - Apache - MySQL - PHP - Xoops - se ve mejor con Firefox
Tema basado en Obscene_V3 original de Aston Themes