Icono del sitio Un lugar en el mundo…

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

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
  5. Y quien quiera experimentar con más opciones de systemctl, ya sabe: man systemctl 😉

    Salir de la versión móvil