martes, 25 de enero de 2011

Controlando los servicios y aplicaciones al inicio en GNU/Linux

Los Init scripts son pequeños programas del shell que normalmente controlan los servicios, también conocidos como daemons. Otras aplicaciones para init scripts incluyen simplemente controlar el estado de algo como por ej. hdparm (tiempos de sleep de los discos duros), iptables (carga las reglas de firewall en el kernel) y setserial (configuración de puertos COM). El directorio /etc/init.d contiene los scripts ejecutados por init durante el proceso de arranque y cuando init mismo comienza a trabajar.

Los Init scripts también son importantes durante el proceso de encendido y apagado (simplemente cambiar de runlevel en los sistemas *nix). Si tomamos una mirada a la lista de procesos ejecutándose en nuestro sistema GNU/Linux (ej. ps auwx), veremos en la lista de procesos uno llamado init con el PID más bajo. Este es el padre de todos los procesos; este es el primer programa que el kernel ejecuta cuando arranca el sistema. Init, el cual se encuentra en /sbin/init, es reponsable de tener el sistema arriba y corriendo después de que el kernel finaliza el proceso de arranque.
Ahora veremos algunas herramientas para administrar nuestros init scripts, ya sea para deternerlos, ponerlos o quitarlos al inicio del sistema.

Startup Applications Preferences



Es la herramienta más fundamental para configurar algunos de los servicios y aplicaciones que se inician desde el arranque. Solamente puede controlar los servicios principales del usuario, aproximadamente 23, pero GNU/Linux puede albergar cientos de servicios diferentes en cada runlevel (/etc/init.d/).


rcconf



Rcconf nos permite controlar cuales servicios son iniciados cuando el sistema arranca. Nos muestra un menú con todos los servicios que pueden ser iniciados. Los que están configurados para iniciar están marcados y podemos cambiar cada servicio ya sea para encenderlo o apagarlo. Este herramienta configura los servicios del sistema directamente con los runlevels. Rcconf enciende o apaga los servicios utilizandos los scripts ubicados en /etc/init.d/, trabajando con la configuración al estilo System-V. Rcconf es una TUI (Text User Interface) para el comando update-rc.d.

Rcconf obtiene la lista de servicios de /etc/init.d y da una mirada en los directorios /etc/rc?.d para determinar si cada servicio está activado o desactivado.



Basada en Perl-Gtk2, es una aplicación para manejar la configuración de los runlevels de cualquier sistema Debia o derivado. Nos permite de forma fácil iniciar y detener scripts de inicio, sin la necesidad de involucrarnos con enlaces complejos y permisos de root.

sysv-rc-conf

Sin duda la mejor herramienta para estos fines, nos permite controlar todos los servicios y determinar en cuál runleven se van a iniciar. Pero hay un problema (al menos para algunos): al igual rcconf, está basada en línea de comandos y modo de texto. Ofrece más información de cada servicio.

A comando limpio!

Debian | Ubuntu

Configurar el daemon de MySQL por defecto 

$ sudo update-rc.d -f mysql defaults

Configurar el daemon de MySQL para que inicie en los runlevel 2 3 4 5 y no lo haga en 0 1 6  

$ sudo update-rc.d mysql start 20 2 3 4 5 . stop 80 0 1 6 .

Configurar el daemon de MySQL para que no inicie  

$ sudo update-rc.d -f mysql remove 



RedHat | Fedora | CentOS

Configurar el daemon de Squid3 para que no inicie

$ sudo chkconfig squid3 off

Configurar el daemon de Squid3 para que inicie en los runlevels 2 3 5

$ sudo chkconfig squid3 --level 2 3 5 on


Estas fueron las herramientas más conocidas para configurar los scripts al inicio de nuestro sistema GNU/Linux. Unas gráficas otras en líneas de comandos, cada una de ellas cumple su cometido. Si conoces alguna otra que no mencionamos aquí, puedes hacernoslo saber con un comentario!


Más recursos:

2 comentarios: