Eu sei que todos eles são arquivos de unidade, mas não consigo entender o significado especial deles. Eu acho que os alvos são semelhantes aos daemons e soquetes são os mesmos que soquete (porta IP +), mas também com números de inode. Alguém poderia explicá-los em palavras simples?
35
man
páginas do systemd são exemplares: você já viuman systemd.{service,socket,target}
?Respostas:
Unidades de serviço:
- systemd.service (5)
As unidades de serviço Systemd são as unidades que realmente executam e controlam programas e daemons, e dependências são usadas para garantir que os serviços sejam iniciados na ordem correta. Eles são o tipo de unidade mais usado.
Unidades de soquete:
- systemd.socket (5)
As unidades de soquete, por outro lado, não iniciam daemons por conta própria. Em vez disso, eles apenas ficam lá 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 soquete é iniciado é iniciado e a conexão é entregue a ele.
Isso é útil para garantir que grandes daemons que ocupam muitos recursos, mas raramente são usados, não estejam executando e ocupando recursos o tempo todo, mas, em vez disso, são iniciados apenas quando necessário.
Unidades de destino:
- systemd.target (5)
Os alvos são usados para agrupar e ordenar unidades. Eles são praticamente equivalentes aos níveis de execução, pois em diferentes destinos, diferentes serviços, soquetes e outras unidades são iniciados. Ao contrário dos níveis de execução, eles são muito mais livres e você pode facilmente criar seus próprios alvos para encomendar unidades, e os alvos têm dependências entre si.
Por exemplo,
multi-user.target
é onde a maioria dos daemons está agrupada e precisabasic.target
ser ativada, o que significa que todos os serviços agrupadosbasic.target
serão iniciados antes dos que estão dentromulti-user.target
.fonte
A documentação para systemd é excelente para um projeto relativamente novo. Para começar com destinos , de
man systemd.target
:Esses "grupos de unidades" cobrem uma variedade de funcionalidades diferentes, das
basic.target
quais cobrem essencialmente a inicialização do sistema, até tudo, desde dbus, gettys, pontos de montagem a trocas e temporizadores. Você pode ver a lista completa comman systemd.special
.arquivos de serviço são as unidades básicas para a execução de processos controlados pelo systemd. Novamente, de
man systemd.service
:Estes constituem os daemons que podem ser iniciados, parados, reiniciados, recarregados.
Finalmente, soquetes , de
man systemd.socket
:Eles abrangem um soquete no sistema de arquivos ou na Internet, além de FIFOs clássicos como transporte. Cada unidade de soquete possui uma unidade de serviço correspondente, iniciada se a primeira conexão entrar no soquete ou no FIFO.
Além das
man
páginas, vale a pena ler a série de postagens de blog de Lennart, systemd for Administrators , que fornece uma visão detalhada da arquitetura e implementação do systemd (atualmente há 20 postagens na série).fonte