Unidades de serviço:
A unit configuration file whose name ends in .service encodes information about a process controlled and supervised by systemd.
As unidades de serviço Systemd são as unidades que realmente executam e controlam programas e daemons, e as dependências são usadas para garantir que os serviços sejam iniciados na ordem correta. Eles são o tipo de unidade mais comumente usado.
Unidades de soquete:
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.
As unidades de soquete, por outro lado, não iniciam os daemons por conta própria. Em vez disso, eles apenas ficam lá sentados e escutam um endereço IP e uma porta, ou um soquete de domínio UNIX, e quando algo se conecta a ele, o daemon para o qual o socket está é iniciado e a conexão é entregue a ele.
Isso é útil para garantir que os daemons grandes que usam muitos recursos, mas raramente são usados, não estejam sendo executados e ocupando recursos o tempo todo, mas, em vez disso, só são iniciados quando necessário.
Unidades alvo:
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.
Os destinos são usados para agrupar e ordenar unidades. Eles são um pouco mais ou menos equivalentes aos runlevels, em diferentes destinos, diferentes serviços, soquetes e outras unidades são iniciadas. Ao contrário dos runlevels, eles são muito mais livres e você pode facilmente criar seus próprios alvos para ordenar unidades, e os alvos têm dependências entre eles.
Por exemplo, multi-user.target
é o que a maioria dos daemons está agrupada e requer que basic.target
seja ativado, o que significa que todos os serviços agrupados em basic.target
serão iniciados antes dos que estão em multi-user.target
.