
Eu sei que todos eles são arquivos unitários, mas não consigo entender o significado especial deles. Eu acho que os alvos são semelhantes aos daemons e os soquetes são iguais ao soquete (porta IP +), mas também com números de inode. Alguém poderia explicá-los em palavras simples?
Responder1
Unidades de serviço:
A unit configuration file whose name ends in .service encodes information about a process controlled and supervised by systemd.
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 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 daemons por conta própria. Em vez disso, eles apenas sentam 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 ao qual o soquete se destina é 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 em execução e consumindo recursos o tempo todo, mas apenas sejam 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 alvos são usados para agrupar e ordenar unidades. Eles são um equivalente aproximado 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 ordenar unidades, e os alvos têm dependências entre si.
Por exemplo, multi-user.target
é onde a maioria dos daemons está agrupada e precisa basic.target
ser ativado, o que significa que todos os serviços agrupados em basic.target
serão iniciados antes daqueles em multi-user.target
.
Responder2
A documentação do systemd é excelente para um projeto relativamente novo. Começar comalvos, de man systemd.target
:
As unidades alvo não oferecem nenhuma funcionalidade adicional além da funcionalidade genérica fornecida pelas unidades. Eles existem apenas para agrupar unidades por meio de dependências (úteis como alvos de inicialização) e para estabelecer nomes padronizados para pontos de sincronização usados em dependências entre unidades. Entre outras coisas, as unidades de destino são um substituto mais flexível para os níveis de execução SysV no sistema init SysV clássico.
Esses "grupos de unidades" cobrem uma série de funcionalidades diferentes, desde basic.target
a inicialização do sistema até tudo, desde dbus, gettys, pontos de montagem até swap e temporizadores. Você pode ver a lista completa com man systemd.special
.
serviçoarquivos são as unidades básicas para executar processos controlados pelo systemd. Novamente, de man systemd.service
:
Um arquivo de configuração de unidade cujo nome termina em .service codifica informações sobre um processo controlado e supervisionado pelo systemd.
Estes constituem os daemons que podem ser iniciados, parados, reiniciados, recarregados.
Finalmente,tomadas, de man systemd.socket
:
Um arquivo de configuração de unidade cujo nome termina em ".socket" codifica informações sobre um IPC ou soquete de rede ou um sistema de arquivos FIFO controlado e supervisionado pelo systemd, para ativação baseada em soquete.
Estes abrangem um soquete no sistema de arquivos ou na Internet, bem como FIFOs clássicos como transporte. Cada unidade de soquete possui uma unidade de serviço correspondente, que é iniciada se a primeira conexão ocorrer no soquete ou FIFO.
Além das man
páginas, vale a pena ler a série de posts de Lennart,systemd para administradores, que fornece uma visão aprofundada da arquitetura e implementação do systemd (atualmente existem 20 postagens na série).