Buscar en este blog

23.2.17

Resumen SYSTEMD

Conceptos fundamentales:

unit Definición de un proceso (unidad mínima)
target Agrupación de 'units' para manejar un servicio o varios
journal Sistema de logs de todas las operaciones y salidad de SYSTEMD

Comandos para gestión de servicios

systemctl status SERVICIO service SERVICIO status
systemctl start SERVICIO service SERVICIO start
systemctl stop SERVICIO service SERVICIO stop
systemctl reload SERVICIO service SERVICIO reload
systemctl restart SERVICIO service SERVICIO restart
systemctl enable SERVICIO chkconfig SERVICIO on
systemctl disable SERVICIO chkconfig SERVICIO off
systemctl is-active SERVICIO chkconfig SERVICIO
systemctl is-enabled SERVICIO chkconfig --list | grep SERVICIO
systemctl is-failed SERVICIO
systemctl list-units
systemctl list-units -all
systemctl list-units --all --state=inactive
systemctl linst-units --type=service
systemctl list-unit-files --type=service chkconfig --list
systemctl list-dependencies SERVICIO --after
systemctl list-dependencies SERVICIO --before

UNIT: Concepto de mínimo recurso que maneja "systemd".
Las UNIT se definen en archivos.

Tipo de UNITExtensión del ficheroDescription
Service unit .service Un servicio clásico
Target unit .target Grupo de units
Automount unit .automount Filesystem
Device unit .device Dispositivo (reconocido por el kernel)
Mount unit .mount Punto de montaje
Path unit .path Ruta
Scope unit .scope Proceso creado externamente a systemd
Slice unit .slice Conjunto jerárquico de units organizadas para manejar un grupo de procesos del sistema.
Snapshot unit .snapshot Un estado salvado de la configuración de systemd
Socket unit .socket Socket
Swap unit .swap Dispositivo o archivo swap
Timer unit .timer Cronómetro


Rutas
Path Descripción Prioridad
/run/systemd/system/ Creadas en tiempo de ejecución 1
/etc/systemd/system/ Enlazadas a /usr/lib/systemd/system al habilitar un servicio 2
/usr/lib/systemd/system/ Definiciones de Units con las que se instalan los paquetes (rpm) 3

Archivo Unit
Aspecto de un archivo de definición de 'Unit' (sshd.service):
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service    #Orden específico de arranque
Wants=sshd-keygen.service                            #Otra unit necesaria para este 

[Service]
Type=forking
PIDFile=/var/run/sshd.pid
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd $OPTIONS      #Comando de start
ExecReload=/bin/kill -HUP $MAINPID    #Comando de reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target      
             #Otra unit de la cual forma parte

Runlevels
Desaparece el concepto clásico. Se sustituyen por 'targets'.
Varios targets pueden estar activos a la vez si las dependencias lo permiten.

systemctl get-default Target por defecto
systemctl set-default graphical.target
Establecer target por defecto
systemctl list-units --type=target Targets activos
systemctl list-unit-files --type=target Targets disponibles
systemctl rescue|halt|poweroff|reboot shortcut a single-user|halt|apagar|reiniciar

Journal

journalctl Ver todos los logs desde el principio
journalctl -f Modo seguimiento. Ver en tiempo real
journal -u UNIDAD Ver logs de una unidad en particular


Referencias: