O que é o alvo, serviço e socket do systemd?

25

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 sockets são os mesmos que socket (IP + port), mas também com números de inode. Alguém poderia, por favor, explicá-las em palavras simples?

    
por drpaneas 05.10.2014 / 22:16

2 respostas

32

Unidades de serviço:

A unit configuration file whose name ends in .service encodes
information about a process controlled and supervised by systemd.

- systemd.service (5)

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.

- systemd.socket (5)

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.

- systemd.target (5)

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 .

    
por 06.10.2014 / 00:29
8

A documentação do systemd é excelente para um projeto relativamente novo. Para começar com destinos , de man systemd.target :

Target units do not offer any additional functionality on top of the generic functionality provided by units. They exist merely to group units via dependencies (useful as boot targets), and to establish standardized names for synchronization points used in dependencies between units. Among other things, target units are a more flexible replacement for SysV runlevels in the classic SysV init system.

Esses "grupos de unidades" cobrem uma matriz de diferentes funcionalidades, desde basic.target , que basicamente cobre a inicialização do sistema, até o everyhting, desde dbus, gettys, pontos de montagem até troca e timers. Você pode ver a lista completa com man systemd.special .

Os arquivos

service são as unidades básicas para executar processos controlados pelo systemd. Novamente, de man systemd.service :

A unit configuration file whose name ends in .service encodes information about a process controlled and supervised by systemd.

Estes constituem os daemons que podem ser iniciados, parados, reiniciados, recarregados.

Finalmente, sockets , de man systemd.socket :

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.

Estes cobrem um socket no sistema de arquivos ou na Internet, assim como FIFOs clássicos como transporte. Cada unidade de soquete tem uma unidade de serviço correspondente, que é iniciada se a primeira conexão entrar no soquete ou no FIFO.

Além das páginas man , vale a pena ler a série de postagens de blog de Lennart, systemd para administradores , que fornece uma visão detalhada da arquitetura e implementação do systemd (atualmente há 20 posts na série).

    
por 06.10.2014 / 00:37

Tags