Ejecutar un script al iniciar el sistema

Cualquier comando que coloquemos o script al que llamemos en dicho fichero será ejecutado al final del arranque, es decir, cuando todos los scripts que tenemos en el runlevel correspondiente hayan sido ejecutados. Suponemos que tenemos un script bash cualquiera en nuestra carpeta personal llamado script.sh le daremos permisos de ejecución:

sudo chmod +x script.sh

rc.local

La forma más fácil y sencilla es editar el fichero rc.local y añadir la instrucción sh, es decir, la encargada de ejecutarlo después de los comentarios, pero antes del ‘exit 0′.

sudo nano /etc/rc.local

quedará de la siguiente forma:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sh /home/usuario/script.sh
exit 0

Hemos añadido el comando sh para indicar que queremos ejecutarlo. Para desinstalarlo, basta con comentar la línea añadida o bien eliminarla.
Nota: hay veces que hay que poner un sleep 100 antes de llamar a la ejecución de un script porque rc.local se suele iniciar antes que otros servicios y así evitamos que no estén iniciados. También es posible que haya que eliminar el parámetro “-e” de !/bin/sh para que no pare la ejecución del script al encontrar posibles errores.

init.d

La otra opción, es ejecutarlo junto con el resto de servicios del sistema, para ello movemos el script a la carpeta init.d, le damos permisos de ejecución y actualizamos el rc.d con configuración por defecto:

sudo mv /home/usuario/script.sh /etc/init.d/
sudo chmod +x /etc/init.d/script.sh
sudo update-rc.d script.sh defaults

Si lo queremos desinstalar, ejecutamos:

sudo update-rc.d -f script.sh remove

y después eliminamos manualmente el script de init.d si no lo vamos a utilizar más:

sudo rm /etc/init.d/script.sh
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s