Para definir a SystemD que mejor que citar lo que ofrecen los responsables del proyecto.
«systemd es un gestor del sistema y de los servicios para Linux, compatible con los initscript SysV y LSB. systemd proporciona una notable capacidad de paralelización, utiliza la activación de socket y D-Bus para iniciar los servicios, 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 snapshotting y 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.»
Entre las características más importantes podemos destacar;
- Paralelización de Procesos (poder ejecutar 2 o más procesos en simultáneo) lo cual se traduce en un inicio más rápido del sistema.
- Optimiza el uso de recursos utilizando cgroups.
- Soporta snapshots y restauración del sistema a un punto definido.
- Administra puntos de montaje y montaje de unidades de almacenamiento.
Para verificar que nuestra distribución está siendo administrada por systemd podemos lanzar desde la terminal.
ps axu | head -n 2Nos debería arrojar algo similar a esto:
De lo contrario aun estarías usando upstart o init
La principal orden para controlar systemd es systemctl. Algunos de los posibles usos son el examen del estado del sistema, y la gestión del sistema y de los servicios.
Podemos listar las unidades en ejecución:
systemctl list-unitsLas unidades disponibles se encuentran listadas en los directorios /lib/systemd/system y /etc/systemd/system, pero pueden ser listadas con:
systemctl list-unit-filesEsto me da la lista de las unidades disponibles y el estatus de ellas:
Gestión de Unidades
Esto puede aplicarse para demonios, servicios, puntos de montaje, sockets y administración general del sistema, un ejemplo real sería para el servidor web apache bajo centos 7.0
#Instalar servidor web apache $ yum -y install httpd #Habilitar el servicio $ systemctl start httpd #Habilitar el servicio para inicio automático con el sistema $systemctl enable httpd #Verificar el estatus del servicio $ systemctl status httpd
Gestion de Energia
Gestión de Targets (Similar a los Runlevels)
Verificar la lista de todos los targets en el sistema:
$ systemctl list-units --type=target