Como activar/desactivar los servicios en GNU/Linux Ubuntu

Introducción.

Parte de los servicios de Ubuntu se encuentran en /etc/init.d mientras que otros ya se encuentran migrados a Upstart, por este motivo se manipulan de diferentes formas.

Iniciar y detener manualmente los servicios.

Este procedimiento permite iniciar y detener manualmente los servicios para un momento específico, es decir, no perdura en el tiempo, después de reiniciar el sistema operativo el servicio quedará nuevamente como haya sido configurado inicialmente.

Los servicios basados en /etc/init.d se manipulan de la siguiente manera.

$ sudo /etc/init.d/NOMBRE_SERVICIO stop      # detener

$ sudo /etc/init.d/NOMBRE_SERVICIO start     # iniciar

Los servicios basados en Upstart se manipulan de la siguiente manera.

$ sudo service NOMBRE_SERVICIO stop          # detener

$ sudo service NOMBRE_SERVICIO start         # iniciar

Activar y desactivar los servicios.

Este procedimiento permite determinar si se desea que un servicio se inicie o no automáticamente después de iniciado (boot) el sistema operativo.

Los servicios basados en /etc/init.d se manipulan de la siguiente manera.

$ sudo update-rc.d NOMBRE_SERVICIO disable   # desactivar

$ sudo update-rc.d NOMBRE_SERVICIO enable    # activar

Para desactivar los servicios basados en Upstart se debe editar el archivo /etc/init/NOMBRE_SERVICIO y comentar la linea que empieza con start on.  Por ejemplo, para activar el servicio cron se debe realizar el siguiente procedimiento.

$ sudo vi /etc/init/cron.conf

# cron – regular background program processing daemon
#
# cron is a standard UNIX program that runs user-specified programs at
# periodic scheduled times

description    “regular background program processing daemon”

# start on runlevel [2345]
stop on runlevel [!2345]

expect fork
respawn

exec cron

Para activar nuevamente el servicio será necesario remover el comentario al comienzo de la línea start on.

Determinar el estado de un servicio.

Para determinar si un servicio se encuentra o no ejecutándose en un momento dado se debe realizar el siguiente procedimiento si el servicio se encuentra basado en /etc/init.d.

$ sudo /etc/init.d/NOMBRE_SERVICIO status

Si el servicio se encuentra basado en Upstart se debe hacer lo siguiente.

$ sudo status NOMBRE_SERVICIO

Iniciar Linux Ubuntu 9.10 en modo sólo texto

Introducción.

Después de instalar los paquetes del escritorio, el Ubuntu Server 9.10 quedó iniciando el login gráfico (gdm) automáticamente.  Se me ocurrió que sería interesante probar cuanto se demoraba en iniciar el sistema operativo hasta la consola sólo texto (nivel de ejecución 3 en la mayoría de Linux).  Para hacer esto sólo era necesario editar el archivo /etc/inittab y modificar la siguiente línea, pasando el nivel predeterminado de ejecución, del 5 al 3.

id:3:initdefault:

Pues bien, parece que muchas cosas han cambiado desde esto, Ubuntu 9.10 ya no tiene /etc/inittab.  Desde la versión 6.10 se está migrando paulatinamente a un nuevo esquema llamado Upstart donde los scripts de ejecución ya no vivirán en /etc/init.d como estabamos acostumbrados sino que ahora son archivos de configuración que se almacenan en /etc/init y que son interpretados con el comando service o initctl.

El nivel de ejecución predeterminado de Ubuntu se encuentra ahora definido por la variable DEFAULT_RUNLEVEL en /etc/init/rc-sysinit.conf y que tiene el valor por defecto de 2.

Otra cosa interesante que noté fue que Ubuntu 9.10 tampoco incluye un GRUB como el que conocía hasta ahora (versión 1) sino que trae una nueva versión (2, bueno 1.97~beta4 en realidad) y por ende presenta una distribución y ubicación de archivos diferente.

Basado en esta información y en las pruebas que realicé encontré dos soluciones para esta actividad, una basada en modificar el GRUB (mi preferida) y otra en modificar el nivel de ejecución en el que se activa el GDM.  Ambas aproximaciones parecen funcionar adecuadamente.

Solución #1: Modificación del GRUB.

Básicamente lo necesario es indicarle a Linux que se desea un inicio en modo texto y esto se hace especificando el parámetro text en la lista de parámetros por defecto del GRUB.

$ sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash text

Se actualiza la configuración del GRUB para generar un nuevo /boot/grub/grub.cfg.

$ sudo update-grub

Solución #2: Modificar el nivel de ejecución del GDM.

El nivel de ejecución por defecto de Ubuntu es el 2 así que el procedimiento se basa en indicarle al Upstart que ejecute al GDM en un nivel diferente a este: 3.

$ sudo vi /etc/init/gdm.conf

Reemplace la línea de la sección start on mostradas a continuación.

start on (filesystem

Por las siguientes.

start on (runlevel [3]
and filesystem

En ambos casos, reinicie el sistema operativo para verificar que los cambios surtan el efecto deseado.

Iniciar el manejador de ventanas.

Si tuvo éxito llevando a cabo la solución elegida, cuando inicie el sistema operativo lo dejará siempre en la consola basada en texto.  Si en algún momento desea iniciar el ambiente gráfico, puede hacerlo de las siguientes formas.

Para el usuario actual.

$ startx

Iniciar el GDM (temporalmente).

$ sudo service gdm start

Enlaces.