Chuletillas (y XXXII) – systemctl, una más de servicios en Fedora

chuleta A partir de la anterior Fedora 15 se introdujo systemd como system y session manager. El cambio fue tan “transparente” que yo ni me enteré de ello. Sin embargo desde el momento en que instalé la beta de Fedora 16, hace ya algo más de un mes, empecé a notar que pasaban cosas raras en mi equipo… Había servicios que no me aparecían activos en el arranque y que no respondían igual a los comandos y herramientas que vimos en una chuletilla anterior.

Los nuevos servicios de Fedora ya no se encuentran en /etc/init.d (aunque alguno queda aún ahí imagino que por compatibilidad) sino que están en el directorio /lib/systemd/system y para interactuar con ellos en línea de comando ya no usamos el comando service, sino systemctl.

systemctl es un comando mucho más rico en opciones y posibilidades que su predeceror, pero como guía de inicio y emergencia, te conviene ir anotando las siguientes.

Para iniciar un servicio, por ejemplo sendmail:

sudo systemctl start sendmail.service

Los servicios ahora parecen tener todos ese formato terminado en “.service”. Aparte de start tenemos las opciones clásicas: stop, restart, reload y status. La opción status da mucha más información de lo que teníamos anteriormente:

sudo systemctl status vboxdrv.service

vboxdrv.service - LSB: VirtualBox Linux kernel module
Loaded: loaded (/etc/rc.d/init.d/vboxdrv)
Active: active (exited) since Mon, 07 Nov 2011 18:45:22 +0100; 3s ago
Process: 5550 ExecStop=/etc/rc.d/init.d/vboxdrv stop (code=exited, status=0/SUCCESS)
Process: 5572 ExecStart=/etc/rc.d/init.d/vboxdrv start (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/vboxdrv.service

Por último, para habilitar el inicio automático de un servicio en el arranque o para deshabilitarlo, respectivamente, tenemos las opciones enable y disable:

sudo systemctl enable cups.service

ln -s '/lib/systemd/system/cups.service' '/etc/systemd/system/printer.target.wants/cups.service'
ln -s '/lib/systemd/system/cups.socket' '/etc/systemd/system/sockets.target.wants/cups.socket'
ln -s '/lib/systemd/system/cups.path' '/etc/systemd/system/multi-user.target.wants/cups.path'
sudo systemctl disable cups.service

rm '/etc/systemd/system/sockets.target.wants/cups.socket'
rm '/etc/systemd/system/printer.target.wants/cups.service'
rm '/etc/systemd/system/multi-user.target.wants/cups.path'

Quién quiera saber algo más de las novedades y mejoras que aporta systemd, puede empezar por esta serie de cuatro artículos que Diego Calleja ha escrito durante el último año:

  1. systemd, otro reemplazo de init
  2. Novedades en systemd
  3. Novedades en systemd, II
  4. Novedades en systemd, III

Y quien quiera experimentar con más opciones de systemctl, ya sabe: man systemctl 😉

3 opiniones en “Chuletillas (y XXXII) – systemctl, una más de servicios en Fedora”

  1. Todo lo contrario, compañero. Esa diversidad existente en los ecosistemas Linux aunque a veces nos exaspere es lo que realmente los hace grandes. Por un lado estimula la competencia: a ver quién es más rápido, ocupa menos memoria, etc y los hace evolucionar. Por otro, hace más dificil que aparezcan virus que exploten vulnerabilidades comunes.

  2. He trabajado estos último días con una Fedora14, y con Ubuntu11 instalando nuevos servicios/demonios, y ya en estas versiones me he encontrado con diferencias. Sin embargo, el cambio que propone Fedora 16 es aún más drástico. Sinceramente, no entiendo porqué no se mantiene una homogeneidad en las distintas distribuciones Linux respecto a cuestiones básicas del operativo como la que aquí se habla.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *