Actualizado el 22 de Junio del 2017 (Publicado el 14 de Enero del 2017)
736 visualizaciones desde el 14 de Enero del 2017
332,1 KB
2 paginas
Creado hace 18a (07/04/2007)
GNU/Linux : Ejecutar programas en el inicio
del sistema GNU/Linux
Enviado por jmarior on 5/12/2005 8:00:00 (4216 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.noip.com (/usr/local/bin/noip2) deberemos crear un script en /etc/init.d por ejemplo de
nombre noip, como el que os muestro más abajo. El propietario debe ser root y requiere permisos de
ejecución.
#!/bin/sh
. /lib/lsb/initfunctions
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/initfunctions" 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/noip /etc/rc2.d/S80noip
la nomenclatura "S80noip" 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
noip 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.ubuntues.org y otras
Comentarios de: GNU/Linux : Ejecutar programas en el inicio del sistema GNU/Linux (0)
No hay comentarios