Publicado el 18 de Febrero del 2020
690 visualizaciones desde el 18 de Febrero del 2020
941,8 KB
26 paginas
Creado hace 9a (22/09/2015)
systemd
1
Software Freedom Day 2015 | ALEX CALLEJAS
About Me
Alex Callejas
Technical Account Manager (Red Hat)
dark_axl
/rootzilopochtli
www.rootzilopochtli.com
Geek by nature, Linux by choice, Fedora of course!
2
Software Freedom Day 2015 | ALEX CALLEJAS
systemd?
3
Software Freedom Day 2015 | ALEX CALLEJAS
Qué es systemd?
● systemd es el reemplazo del daemon de inicialización
de Linux: init
● Creado para proporcionar una mejor estructura para
expresar dependencias de servicio, permitir más
procesos simultáneos en el arranque del sistema para
reducir el overhead
● Su nombre proviene del sufijo Unix de la unión de dos
daemons: system con una d, para indicar que él
mismo es un servicio
● Entonces es el “Gerente de servicios”
4
Software Freedom Day 2015 | ALEX CALLEJAS
Arranque del sistema: proceso
5
Software Freedom Day 2015 | ALEX CALLEJAS
Sustituyendo a init.d
● Sustituye todo el arranque: initscripts, chkconfig, rc.d,
init.d, etc.
● Inicia servicios paralelamente
● Lee autómaticamente las dependencias de los servicios
● Usa la lógica “start less”
● Significa que inicia un menor número de servicios
posibles o los retrasa hasta que sean realmente
necesarios
6
Software Freedom Day 2015 | ALEX CALLEJAS
Hace más que sustituir a init.d
● Además de la rápidez, tiene más funciones:
● Fue escrito en C, por lo que es más rápido
● Puede reiniciar un servicio que fue detenido
● Comunicación a tráves de socket/dbus
● Utiliza Linux Control Groups (cgroups)
● Control de dependencias
● Maneja puntos de montaje
● fsck y swap
7
Software Freedom Day 2015 | ALEX CALLEJAS
Timeline - init
8
Software Freedom Day 2015 | ALEX CALLEJAS
Timeline - systemd
9
Software Freedom Day 2015 | ALEX CALLEJAS
Paralelismo
● Los daemons esperan hasta que el socket de otro
daemon ofrezca servicio en su conexión
● El cliente de Dbus espera hasta que
/var/run/dbus/system_bus_socket esté
conectado
● Los clientes de syslog esperan a /dev/log
● Los clientes de CUPS esperan por
/var/run/cups/cups.sock
● Los puntos de montaje NFS esperan por
/var/run/rpcbind.sock y por el puerto IP de
portmapper
10
Software Freedom Day 2015 | ALEX CALLEJAS
Paralelismo
● Los sockets que están en “listening” pueden ser
abiertos antes de iniciar el daemon
● Los sockets son proporcionados al daemon solamente
en la llamada de ejecución – exec()
● Primero se abren los sockets para todos los daemons
durante el arranque
● Después
se
simultáneamente
ejecutan
todos
los
daemons
11
Software Freedom Day 2015 | ALEX CALLEJAS
Unidad Básica de administración
● El objeto básico que systemd gestiona y sobre el cual
actúa es una unidad [unit]. Las unidades pueden ser
de muchos tipos, pero la más común es un servicio
(indicado por un archivo de unidad que termina en
.service). Para administrar los servicios la principal
herramienta es el comando systemctl.
● Todos los comandos normales del sistema init tienen
acciones equivalentes con el comando systemctl
12
Software Freedom Day 2015 | ALEX CALLEJAS
Usando systemd: start/stop
● Para iniciar una unidad, la sintaxis es:
systemctl start <service-name>.<type-of-unit>
● Es equivalente a
service <service-name> start
● Ejemplo:
systemctl start sshd.service
● Es la misma sintaxis para stop y status
13
Software Freedom Day 2015 | ALEX CALLEJAS
Usando systemd: Ejemplo
14
Software Freedom Day 2015 | ALEX CALLEJAS
Usando systemd: equivalencia de chkconfig
● Para habilitar una unidad que debe iniciar en el
arranque (boot):
systemctl enable <service-name>.<type-of-unit>
● Es equivalente a:
chkconfig <service-name> on
● Ejemplo:
systemctl enable sshd.service
● Existen dos opciones: enable y disable
15
Software Freedom Day 2015 | ALEX CALLEJAS
Usando systemd: listando unidades
● Para listar todas las unidades disponibles:
systemctl list-units -all
● Para listar todas las unidades cargadas
systemctl list-units
● Para listar todas las unidades instaladas
systemctl list-unit-files
16
Software Freedom Day 2015 | ALEX CALLEJAS
Usando targets (runlevels)
17
Software Freedom Day 2015 | ALEX CALLEJAS
Cambiando de runlevel
● Cambiando el runlevel en systemd:
● Al equivalente init 1 (single)
systemctl isolate rescue.target
● Manteniendo el viejo concepto
systemctl isolate runlevel1.target
● Al equivalente init 3
systemctl isolate multi-user.target
18
Software Freedom Day 2015 | ALEX CALLEJAS
Targets
19
Software Freedom Day 2015 | ALEX CALLEJAS
Bitácora: Journal / log
● Se implementó un recurso de logging integrado a los
propios servicios y a rsyslog
20
Software Freedom Day 2015 | ALEX CALLEJAS
Bitácora: Journal / log
● También registra los mensajes del kernel
journalctl -k
● Está configurado en el archivo
/etc/syslogd/journald.conf
● Los logs son guardados en archivos binarios en el
directorio /var/log/journald pero no se crean de
forma predeterminada
● Es necesario ejecutar el comando 'systemctl restart
systemd-journald'
● A través del servicio systemd los mensajes durante el
arranque (boot) y el apagado (shutdown) son accesibles
journalctl -b
21
Software Freedom Day 2015 | ALEX CALLEJAS
Bitácora: Journal / log
● Para mostrar los mensajes:
journalctl -al
● Para hacerlos más entendibles, incluyendo algunas
descripciones cuando es posible:
journalctl -alx
● Para mostrar los mensajes de una unidad específica:
journalctl -xu network.service
22
Software Freedom Day 2015 | ALEX CALLEJAS
Preguntas?
23
Software Freedom Day 2015 | ALEX CALLEJAS
Entonces: es mejor systemd que systemV?
24
Software Freedom Day 2015 | ALEX CALLEJAS
25
Software Freedom Day 2015 | ALEX CALLEJAS
26
Software Freedom Day 2015 | ALEX CALLEJAS
Comentarios de: systemd (0)
No hay comentarios