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