Sobre systemd

Imagen de Gabriel_M
565 puntos

A partir de la versión 15.04 Ubuntu, tal como ya lo hacia Debian, comienza a implementar systemd, en reemplazo de upstart.

Systemd es un gestor del sistema y de los servicios para Linux, compatible con los initscript SysV y LSB, que proporciona una notable capacidad de paralelización, permite el inicio de los demonios bajo demanda, realiza un seguimiento de los procesos con el uso de los grupos de control de Linux, apoya la restauración del estado del sistema, mantiene los puntos montaje y servicios de montaje automático e implementa un elaborado sistema de gestión de dependencias basado en un control lógico de los servicios.

La principal orden para controlar systemd es systemctl, y esto determina que el uso de algunos comandos haya variado en su formulación.
Para listar las unidades activas:

 systemctl list-units

Para listar las unidades que han tenido problemas:

systemctl --failed

Las unidades pueden ser:

Servicios (.service)
Puntos de montaje (.mount)
Dispositivos (.device)
Sockets (.socket).

Cuando se usa systemctl es necesario especificar el nombre completo de la unidad incluyendo el sufijo.
Si no se especifica el sufijo, systemctl asumirá que es .service.
Si se trata de puntos de montaje, se asume automáticamente en unidad .mount, asi si se especifica /home, será equivalente a home.mount.
Si se trata de dispositivos, se asume automáticamente en unidad .device, así si se especifica /dev/sda2, será equivalente a dev-sda2.device.

Activar una unidad:

sudo -i
systemctl start  <unidad>

Desactivar una unidad:

sudo -i
systemctl stop <unidad>

Reiniciar una unidad:

sudo -i
systemctl restart <unidad>

Recargar configuración de una unidad:

sudo -i
systemctl reload <unidad>

Mostrar estado de una unidad:

systemctl status <unidad>

Comprobar si una unidad está habilitada o inhabilitada:

 systemctl is-enabled <unidad>

Activar el inicio automático de una unidad en el inicio:

sudo -i
 systemctl enable <unidad>

Instalar manualmente un servicio en el inicio:

sudo -i
ln -s /usr/lib/systemd/system/<nombre>foo.service    /etc/systemd/system/graphical.target.wants/

Desactivar el inicio automático de una unidad en el inicio:

sudo -i
systemctl disable <unidad>

Mostrar la página del manual de una unidad:

systemctl help <unidad>

Recargar systemd:

sudo -i
systemctl daemon-reload

Ahora con systemd, para gestionar la energía es necesario polkit, si nos encontramos en una sesión local de systemd-logind y no hay otra sesión está activa, las órdenes al respecto funcionan sin requerir el uso de sudo, si no fuera así, systemd automáticamente solicita la contraseña de root.
Apagado y reinicio del sistema:

systemctl reboot

Apagado del sistema:

systemctl poweroff

Suspensión del sistema:

systemctl suspend

Poner el sistema en hibernación:

systemctl hibernate

Poner el sistema en estado de reposo híbrido:

systemctl hybrid-sleep