Unidades de servicio:
A unit configuration file whose name ends in .service encodes
information about a process controlled and supervised by systemd.
- systemd.service (5)
Las unidades de servicio de Systemd son las unidades que realmente ejecutan y realizan un seguimiento de los programas y demonios, y las dependencias se utilizan para garantizar que los servicios se inicien en el orden correcto. Son el tipo de unidades más utilizado.
Unidades de enchufe:
A unit configuration file whose name ends in ".socket" encodes
information about an IPC or network socket or a file system FIFO
controlled and supervised by systemd, for socket-based activation.
- systemd.socket (5)
Las unidades de socket, por otro lado, en realidad no inician demonios por sí mismas. En cambio, simplemente se sientan allí y escuchan en una dirección IP y un puerto, o un socket de dominio UNIX, y cuando algo se conecta a él, se inicia el demonio para el que se usa el socket y se le entrega la conexión.
Esto es útil para asegurarse de que los grandes demonios que consumen muchos recursos pero que rara vez se usan no se ejecutan y consumen recursos todo el tiempo, sino que solo se inician cuando es necesario.
Unidades objetivo:
A unit configuration file whose name ends in ".target" encodes
information about a target unit of systemd, which is used for grouping
units and as well-known synchronization points during start-up.
- systemd.target (5)
Los objetivos se utilizan para agrupar y ordenar unidades. Son algo así como un equivalente aproximado de los niveles de ejecución en que en diferentes objetivos, se inician diferentes servicios, sockets y otras unidades. A diferencia de los niveles de ejecución, son mucho más libres y puedes crear fácilmente tus propios objetivos para ordenar unidades, y los objetivos tienen dependencias entre ellos.
Por ejemplo, multi-user.target
es en lo que se agrupan la mayoría de los demonios, y requiere basic.target
ser activado, lo que significa que todos los servicios agrupados basic.target
se iniciarán antes que los que están en multi-user.target
.
man
páginas de systemd son ejemplares: ¿has miradoman systemd.{service,socket,target}
?