Todos los sistemas operativos modernos tienen algún tipo de rutina de inicio. Incluso DOS tenía el antiguo AUTOEXEC.BAT y CONFIG.SYS. El sistema de inicio define lo que se lanza al iniciar el sistema, bajo qué condiciones y en qué orden. El DOS hacía las cosas de forma sencilla, teniendo un archivo que se leía en cada arranque y que ejecutaba los comandos en el orden en que se colocaban en el archivo. Es ciertamente simple, pero como la mayor parte del DOS, no es lo suficientemente potente o flexible como para hacerlo hoy en día.
Casi todas las variantes de Linux utilizan un enrutamiento de arranque modelado según el que se encuentra en UNIX System V. Ubuntu utiliza un sistema llamado Upstart que pretende ser compatible con el SysV Init normal. Todos ellos se basan en el concepto de niveles de ejecución. Un nivel de ejecución es simplemente un conjunto de instrucciones para el arranque/apagado. Si tu Linux está configurado para usar, por ejemplo, el nivel de ejecución 5 por defecto, entonces cada vez que arranques vas a ejecutar todos los scripts de inicio para el nivel de ejecución 5. El siguiente ejemplo muestra cómo están configurados los niveles de ejecución en una instalación estándar de Debian.
- 0 – Halt
- 1 – Usuario único
- 2 – Multiusuario completo
- 3 – Multiusuario completo
- 4 – Multiusuario completo
- 5 – Multiusuario completo
- 6 – Reinicio
Los fabricantes de cada distribución pueden personalizar estos niveles de ejecución, por lo que algunas pueden tener por defecto niveles de ejecución diferentes a otras. Debian suele tener por defecto el nivel de ejecución 2.
Para averiguar su nivel de ejecución por defecto, abra una consola y escriba
cat /etc/inittab | grep initdefault
O simplemente abra /etc/inittab en su editor de texto preferido y busque la línea “initdefault” en la parte superior.
Ahora que sabemos qué nivel de ejecución está utilizando nuestro sistema, podemos empezar a recortar las partes innecesarias. Cada nivel de ejecución tiene un directorio en el sistema con todos los scripts de inicio. En este momento, sólo nos preocupan los scripts del nivel de ejecución 2. Abre tu gestor de archivos o el símbolo del sistema en /etc/rc2.d. En ese directorio están todos los enlaces a tus programas de inicio para ese nivel de ejecución.
Verás que cada uno comienza con una letra (S o K) seguida de un número de dos dígitos (00-99). Los scripts que empiezan por S se inician cuando se entra en ese nivel de ejecución, los que empiezan por K se eliminan cuando se entra en el nivel de ejecución. Los números representan el orden de ejecución de esos scripts. Por ejemplo, S05Foo comenzaría antes que S80Bar.
Es muy probable que no reconozcas algunos de los elementos listados en ese directorio. Algunos de ellos son bastante claros como “network-manager” mientras que otros son más crípticos. Si no estás seguro de lo que puedes eliminar con seguridad, busca una página man sobre ese elemento. Por ejemplo, si no estás seguro de qué es “acpid”, introduce
man acpid
en su terminal. Si man no tiene ninguna entrada, siempre está Google.
Ahora, para empezar a eliminar los elementos innecesarios. PODRÍA simplemente eliminar los scripts en el directorio rc2.d (en realidad son sólo enlaces a los scripts reales) pero no recomendaría ese método. Funcionaría en el sentido de que evitaría que el script se ejecutara al inicio, pero podría dejar abiertos los scripts “K” en otros niveles de ejecución, y hace más difícil restaurar ese elemento si lo necesita más tarde. Como siempre, Debian tiene una forma mejor.
El comando update-rc.d puede utilizarse para añadir y eliminar limpiamente elementos de inicio de su nivel de ejecución. No tengo capacidad de bluetooth en este ordenador, así que voy a eliminar el elemento de inicio de bluetooth.
update-rc.d -f bluetooth remove
El mismo método se puede utilizar para cada elemento de su nivel de ejecución por defecto que desee eliminar. En caso de duda, déjelo ahí.
Si más adelante quiere restaurar ese elemento de inicio, puede utilizar la misma herramienta para añadir servicios a los niveles de ejecución. Si más tarde añado la capacidad de bluetooth a este ordenador, puedo restaurar ese servicio con
update-rc.d bluetooth defaults
Una vez que hayas eliminado todos los elementos innecesarios para tu inicio, verás que tu máquina arranca mucho más rápido y ocupa menos recursos del sistema.
Hay otros métodos para controlar su rutina de inicio, algunos incluyen utilidades gráficas para hacerlo más fácil. Si utilizas una herramienta gráfica para gestionar tu inicio, deja un comentario y dime cuál y qué te gusta de ella.