Ejecutar un script al inicio de tu Ubuntu
- 1 Comentario
En Ubuntu existen muchos procesos que se ejecutan en modo daemon al iniciar la sesión, de hecho si queremos ejecutar algún programa al inicio de la sesión es algo muy simple solo hay que ir a Preferencias > Sesiones > Aplicaciones al inicio y Añadir un programa, con eso es suficiente.
Pero que pasa si lo que deseamos es iniciar un script o programa al arranque del sistema, sin tener que iniciar la sesión, para ello debes realizar los siguientes pasos.
Primero debes comprender que al arrancar el sistema entras en un nivel de ejecución o Runlevel. Para saber con que runlevel trabaja Ubuntu, desde un Terminal digita:
$ runlevel
Normalmente Ubuntu corre en el runlevel 2 por defecto.
Esto quiere decir, que si entras en /etc/rc2.d/ encontraras allí una lista de todos los scripts que se ejecutan al arrancar el sistema. Si nos fijamos bien todos son enlaces simbólicos a archivos que se encuentran en /etc/init.d/ que es donde están todos los daemon ,es decir, todo lo que funciona independientemente y sin emitir en la Consola un mensaje para el usuario.
De modo que para ejecutar un script o programa al arranque del sistema, primero es necesario darle características de daemon y posteriormente crees un enlace simbolico de este daemon en la carpeta /etc/rc2.d/ de la siguiente forma:
1) Darle permiso de ejecución al script, abre un Terminal y en la carpeta donde se encuentra el script digita:
$ sudo chmod +x nombredetuscript
2) Copiarlo a la carpeta /etc/init.d/
$ sudo cp nombredetuscript /etc/init.d
3) Lo hacemos daemon, es decir que se ejecute al inicio de la sesión
$ sudo update-rc.d nombredetuscript defaults
El resultado es el siguiente:
update-rc.d: warning: /etc/init.d/nombredetuscript missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
Adding system startup for /etc/init.d/mydns …
/etc/rc0.d/K20nombredetuscript -> ../init.d/nombredetuscript
/etc/rc1.d/K20nombredetuscript -> ../init.d/nombredetuscript
/etc/rc6.d/K20nombredetuscript -> ../init.d/nombredetuscript
/etc/rc2.d/S20nombredetuscript -> ../init.d/nombredetuscript
/etc/rc3.d/S20nombredetuscript -> ../init.d/nombredetuscript
/etc/rc4.d/S20nombredetuscript -> ../init.d/nombredetuscript
/etc/rc5.d/S20nombredetuscript -> ../init.d/nombredetuscript
Listo!!, con eso se agrega un script al inicio.
Para borrar un script haríamos:
$ sudo update-rc.d miscript.sh remove
Esto borra únicamente los enlaces simbólicos, no el script; y siempre y cuando se haya borrado el script previamente. Si se quiere borrar los enlaces aunque no se haya borrado el script, hay que utilizar la opción -f (force):
$ sudo update-rc.d -f miscript.sh remove
Saludos
muy bueno y si funciona todo ok como esta en las lineas arriba, GRACIAS mil GRACIAS.
podrias por favor, poner como quito un servicio que se esta cargando al inicio asi como el q mostraste para ponerlo que se cargue al inicio, poner otro metodo para quitar que se cargue desde el inicio.
GRACIAS NUEVAMENTE