/etc/rc.local: Ejecutar comandos o scripts en el arranque de *nix

Si no queremos crear un script único (aunque suele ser lo recomendable) para la ejecución de un comando o un script cada vez que iniciamos un sistema tipo Unix (BSD, Gnu/Linux, etc) tenemos la posibilidad de llamarlo desde el fichero /etc/rc.local

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.

Por defecto el fichero únicamente muestra el siguiente comentario:

# cat /etc/rc.local 

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

A partir de aquí simplemente habría que añadir los comandos que quisieramos ejecutar, es básicamente un script en bash:

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

# Ejemplo de creación de fichero en el arranque
touch ~/test.txt
# Asignamos permisos a un fichero
chmod 0644 ~/test.txt
# Ejecutamos un script
/bin/sh ~/test.sh

5 comentarios en “/etc/rc.local: Ejecutar comandos o scripts en el arranque de *nix

  1. Que tal amigo, gracias por tu aportación. Te pido ayuda, respecto a una ejecución de un script en el arranque.

    Tengo Linux mint 13 mate, y por defecto arranca con el brillo al máximo, y es superdañino para la vista, y lo que quiero es lo siguiente:

    En el siguiente post http://blog.desdelinux.net/how-to-ajustar-el-brillo-de-un-portatil-en-linux/ detalla muy bien, como modificar dichos valores a través de un script, pero lo que realmente quiero es que desde rc.local ejecute un script cada vez que finalice el arranque para que modifique el valor de brightness en un valor que pueda ser soportado por la vista, y eso dejarlo fijo para siempre.
    En rc.local, he puesto lo siguiente:
    #!/bin/sh
    #
    # rc.local
    #
    chmod 777 /sys/class/backlight/intel_backlight/brightness
    chmod -x /home/usuario/BajarBrillo.sh
    sh /home/usuario/BajarBrillo.sh

    exit 0

    luego he creado el scrip «BajarBrillo.sh», y le he dado el permiso de ejecución, y lo he alojado en /home/usuario/BajarBrillo.sh y su contenido es como lo que pones en el post:
    #! /bin/bash
    brillo=$(cat /sys/class/backlight/intel_backlight/brightness)
    brillo=$(expr $brillo – 3500)
    echo $brillo > /sys/class/backlight/intel_backlight/brightness

    Efectivamente el rango del archivo brigtness esta entre 0 y 4882, y en efecto ya lo he testeado según las instrucciones del post (http://blog.desdelinux.net/how-to-ajustar-el-brillo-de-un-portatil-en-linux/), y si modifica el brillo pero cuando reinicia vuelve a su estado anterior al máximo de brillo.

    Pues con todo esto, no consigo que ejecute el script en cada arranque para que deje el brillo más bajo por defecto.

    Por favor se que es extenso, podrías ayudarme, que es lo que estoy haciendo mal, o redirigirme con alguien que pueda saber del tema.

    Un cordial saludo
    Manu

  2. Me fue de ayuda para quitar el dichoso bluetooth al comienzo de carga del sistema operativo, porque como han dicho arriba en Fedora 20 ya no viene creado el archivo rc.local. Saludos

Comments are closed.