Hay dos maneras de hacerlo

Supongamos que el script se llama «scriptinicio» ,  es un script del tipo bash y que se encuentra en mi carpeta personal

#sudo chmod +x scriptinicio.sh con esta instrucción le damos permiso de ejecución.

1- Editamos  el fichero rc.local y añadimos la instrucción sh antes para indicar que se ha de ejecutar y   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/antonio/scriptinicio.sh

exit 0

Para desistalarlo, basta con comentar con el simbolo # al principio de la línea añadida o eliminar la línea.

Para evitar que rc.local se inicie antes que otros servicios necesarios podemos añadir sleep 30 para retrasar su inicio 30 segundos

#!/bin/sh -e

sleep 30

Si eliminamos el parámetro “-e” de !/bin/sh no parará la ejecución del script al encontrar posibles errores.

 

2- 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/antonio/scriptinicio.sh /etc/init.d/

sudo chmod +x /etc/init.d/script.sh

sudo update-rc.d scriptinicio.sh defaults

Para desistalarlo, ejecutamos:

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

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

sudo rm /etc/init.d/scriptinicio.sh