Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 10964|Resposta: 8

[Linux] Linux systemd service manager explicado em detalhes

[Copiar link]
Publicado em 28/11/2021 10:02:32 | | | |
systemd é um conjunto de blocos básicos de construção para sistemas Linux. Ele fornece um gerenciador de sistema e serviço que executa e inicia o restante do sistema como PID 1.

o systemd oferece capacidades agressivas de paralelização, usa sockets e ativação do D-Bus para iniciar serviços, fornece início sob demanda de daemons, utiliza grupos de controle Linux para rastrear processos, mantém mounts e pontos de auto-montagem, e implementa uma lógica de controle de serviço baseada em dependência de transações bem projetada. systemd suporta scripts init SysV e LSB e pode substituir sysvinit.

Outras seções incluem daemons de log, utilitários para controlar configurações básicas do sistema como nomes de host, datas, locais, manutenção de uma lista de usuários logados e contêineres e máquinas virtuais em execução, contas de sistema, diretórios de tempo de execução e configurações, além de gerenciar configurações de daemons para redes simples, sincronização de tempo de rede, encaminhamento de logs e resolução de nomes.

O arquivo de configuração systemd existe nas três pastas seguintes:         

/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。

/run/systemd/system 系统执行过程中产生的服务脚本,优先级次之。

/usr/lib/systemd/system 存放系统上所有的启动文件,优先级最低。
Revisar:

O Linux analisa a saída de logs do serviço Systemd
https://www.itsvse.com/thread-10154-1-1.html

Jenkins (4) Adicione um nó Linux e registre-o como um serviço
https://www.itsvse.com/thread-10120-1-1.html

O CentOS 7 instala o exportador de Node
https://www.itsvse.com/thread-9969-1-1.html

Perfil da unidade

Um arquivo de unidade no systemd é um arquivo que codifica informações sobre as várias unidades que o systemd pode gerenciar, incluindo serviços, sockets, dispositivos e assim por diante. Este guia foca em serviços, caso em que o arquivo unitário com o qual estamos trabalhando é o arquivo .service. O arquivo de configuração do dispositivo varnish.service contém informações sobre como o systemd deve executar, monitorar e gerenciar o daemon do verniz.

O bloco [Unidade] geralmente é o primeiro bloco do arquivo de configuração e é usado para definir os metadados da Unidade e como eles se relacionam com outras Unidades. Seus principais campos são os seguintes.

  • Descrição: Uma breve descrição
  • Documentação: O endereço do documento
  • Requer: Outras unidades das quais a unidade atual depende, e se não estiverem funcionando, a unidade atual falhará ao iniciar
  • Deseja: Outras Unidades que trabalham com a Unidade atual, se não estiverem funcionando, a Unidade atual não falhará ao iniciar
  • BindsTo: Semelhante ao Exiges, especifica uma Unidade que faz a Unidade atual parar de funcionar se ela sair
  • Antes: Se a Unidade especificada neste campo também for iniciada, ela deve ser iniciada após a Unidade atual
  • Depois: Se a Unidade especificada neste campo também for iniciada, ela deve ser iniciada antes da Unidade atual
  • Conflitos: A unidade especificada aqui não pode rodar ao mesmo tempo que a unidade atual
  • Condição... : As condições que devem ser cumpridas para que a unidade atual funcione, caso contrário, ela não funcionará
  • Afirmar... : As condições que devem ser atendidas para que a unidade atual funcione, caso contrário a falha de inicialização será reportada

[Instalar] geralmente é o último bloco do arquivo de configuração que define como iniciar e se iniciar ou não. Seus principais campos são os seguintes.

  • WantedBy: Seu valor é um ou mais Alvos, e quando a Unidade atual está ativa (ativada), o symlink é colocado em um subdiretório sob o diretório /etc/systemd/system com o sufixo Nome de Alvo + .wants
  • RequiredBy: Seu valor é um ou mais Alvos, e quando a Unidade atual está ativa, o symlink será colocado em um subdiretório sob o diretório /etc/systemd/system com o sufixo Target name + .required
  • Alias: O pseudônimo que a Unidade atual pode usar para começar
  • Além disso: Quando a unidade atual é ativada, outras unidades serão ativadas ao mesmo tempo

O bloco [Serviço] é usado para configurar o Serviço, e apenas unidades do tipo Serviço possuem esse bloco. Seus principais campos são os seguintes.

  • Tipo: Define o comportamento do processo na inicialização. Ele possui os seguintes valores.
  • Type=simple: O valor padrão, execute o comando especificado pelo ExecStart para iniciar o processo principal
  • type=fork: Fork cria um processo filho a partir do processo pai, que sairá imediatamente após a criação
  • Type=oneshot: Um processo único, o Systemd espera o serviço atual sair antes de continuar executando
  • Tipo=dbus: O serviço atual é iniciado via D-Bus
  • type=notify: Quando o serviço atual for iniciado, o Systemd será notificado e continuará a execução
  • type=idle: O serviço atual será executado apenas se outras tarefas forem executadas
  • ExecStart: O comando para iniciar o serviço atual
  • ExecStartPre: O comando executado antes de iniciar o serviço atual
  • ExecStartPost: O comando executado após iniciar o serviço atual
  • ExecReload: O comando executado quando o serviço atual é reiniciado
  • ExecStop: O comando executado quando o serviço atual é parado
  • ExecStopPost: Parar o comando executado quando é servido
  • RestartSec: O número de segundos entre o serviço automático reinicia o serviço atual
  • Reiniciar: Define as circunstâncias sob as quais o Systemd reiniciará automaticamente o serviço atual, com valores possíveis como sempre, on-sucesso, on-fail, on-anormal, on-abort, on-watchdog
  • TimeoutSec: Define o número de segundos que o Systemd espera antes de parar o serviço atual
  • Ambiente: Especifique a variável ambiente

Ferramenta de gerenciamento Systemctl

O gerenciamento de programas no CentOS é basicamente feito pela ferramenta systemctl.

Serviço de Startup:

systemctl start name.service

Interromper o serviço:

systemctl nome da parada.serviço

Reiniciar o serviço:

systemctl restart name.service

Ver Status:

Nome.serviço de status systemctl

Reinício condicional:

Se o serviço foi iniciado antes, ele será reiniciado, e se o serviço não for iniciado, não será operado

systemctl try-restart name.service

Recarregar ou reiniciar:

Recarregue primeiro, e se o recarregamento não der certo, reinicie

systemctl reload-or-restart name.service

Recarregar ou reiniciar condicional:

systemctl reload-or-try-restart name.service

Define se o serviço pode ser configurado pelo usuário para iniciar o estado

systemctl unmask name.service

SystemCTL Mask Name.Service é proibido

Veja o status atual de ativação do serviço:

O valor de retorno de status do comando serviço iniciado é 0 O valor de retorno de status do comando que não foi iniciado é não 0

systemctl is-active name.service

Veja todos os serviços que foram ativados:

-t Especifica o tipo de unidade exibida.

--todos exibem uma lista mais detalhada de informações.

-um equivalente --todos

Unidades de lista SystemCTL

Serviço SystemCTL List-Units -T

SystemCTL lista-unidades -t serviço -a

Veja todos os serviços:

Unitários de lista systemctl -a

Veja todos os status de serviço:

Ficheiros-Lista-Unidades-SystemCTL

-a 、--todos: Veja o status de todos os serviços

-t 、--tipo: Especifica o tipo de unidade a ser visualizada

loaded: O arquivo de configuração foi carregado, carregado na memória

ativo (em corrida): Execuções que são processadas continuamente uma ou mais vezes

ativo(sair): A configuração única é concluída com sucesso

ativo(esperando): Correndo, esperando por um evento

inactive:不运行

enabled:开机启动

disabled:开机不启动

static:开机不启动,但可被另一个启用的服务激活

Usado para listar em quais níveis operacionais o serviço está ativado e desativado

ls /etc/systemd/system/*.wants/sshd.service

systemctl list-unit-files --type target --all

Para configurar o serviço para não começar:

SystemCTL desabilitar unidade de nome de serviço

Verifique se o serviço foi iniciado e iniciado:

SystemCTL is-ativado name.service

Veja dependências de serviços:

systemctl list-dependencies name.service
systemctl list-depebdencies

Serviço de carga pesada:

systemctl daemon-reload

Acabe com o processo:

Nome do processo de eliminação do systemctl

Recursos:

O login do hiperlink está visível.
O login do hiperlink está visível.
O login do hiperlink está visível.
O login do hiperlink está visível.





Anterior:O Linux testa a conectividade LDAP usando o comando Curl
Próximo:Problema de permissão de arquivo de upload VSFTP
 Senhorio| Publicado em 11/12/2021 17:35:26 |
[Unidade]Um bloco geralmente é o primeiro bloco de um arquivo de configuração que define os metadados de uma Unidade e como eles se relacionam com outras Unidades. Seus principais campos são os seguintes.

Descrição: Uma breve descrição
Documentação: O endereço do documento
Requer: Outras unidades das quais a unidade atual depende, e se não estiverem funcionando, a unidade atual falhará ao iniciar
Deseja: Outras Unidades que trabalham com a Unidade atual, se não estiverem funcionando, a Unidade atual não falhará ao iniciar
BindsTo: Semelhante ao Exiges, especifica uma Unidade que faz a Unidade atual parar de funcionar se ela sair
Antes: Se a Unidade especificada neste campo também for iniciada, ela deve ser iniciada após a Unidade atual
Depois: Se a Unidade especificada neste campo também for iniciada, ela deve ser iniciada antes da Unidade atual
Conflitos: A unidade especificada aqui não pode rodar ao mesmo tempo que a unidade atual
Condição... : As condições que devem ser cumpridas para que a unidade atual funcione, caso contrário, ela não funcionará
Afirmar... : As condições que devem ser atendidas para que a unidade atual funcione, caso contrário a falha de inicialização será reportada
[Instalar]Normalmente, é o último bloco do arquivo de configuração que define como inicializar e se iniciar ou não. Seus principais campos são os seguintes.

WantedBy: Seu valor é um ou mais Alvos, e quando a Unidade atual está ativa (ativada), o symlink é colocado em um subdiretório sob o diretório /etc/systemd/system com o sufixo Nome de Alvo + .wants
RequiredBy: Seu valor é um ou mais Alvos, e quando a Unidade atual está ativa, o symlink será colocado em um subdiretório sob o diretório /etc/systemd/system com o sufixo Target name + .required
Alias: O pseudônimo que a Unidade atual pode usar para começar
Além disso: Quando a unidade atual é ativada, outras unidades serão ativadas ao mesmo tempo
[Serviço]Blocos são usados para configurar serviços, e apenas unidades do tipo Serviço possuem esse bloco. Seus principais campos são os seguintes.

Tipo: Define o comportamento do processo na inicialização. Ele possui os seguintes valores.
Type=simple: O valor padrão, execute o comando especificado pelo ExecStart para iniciar o processo principal
type=fork: Fork cria um processo filho a partir do processo pai, que sairá imediatamente após a criação
Type=oneshot: Um processo único, o Systemd espera o serviço atual sair antes de continuar executando
Tipo=dbus: O serviço atual é iniciado via D-Bus
type=notify: Quando o serviço atual for iniciado, o Systemd será notificado e continuará a execução
type=idle: O serviço atual será executado apenas se outras tarefas forem executadas
ExecStart: O comando para iniciar o serviço atual
ExecStartPre: O comando executado antes de iniciar o serviço atual
ExecStartPost: O comando executado após iniciar o serviço atual
ExecReload: O comando executado quando o serviço atual é reiniciado
ExecStop: O comando executado quando o serviço atual é parado
ExecStopPost: Parar o comando executado quando é servido
RestartSec: O número de segundos entre o serviço automático reinicia o serviço atual
Reiniciar: Define as circunstâncias sob as quais o Systemd reiniciará automaticamente o serviço atual, com valores possíveis como sempre, on-sucesso, on-fail, on-anormal, on-abort, on-watchdog
TimeoutSec: Define o número de segundos que o Systemd espera antes de parar o serviço atual
Ambiente: Especifique a variável ambiente


 Senhorio| Publicado em 11/12/2021 17:37:33 |
Type=forking
O SystemD acredita que o serviço inicia com sucesso quando o processo de serviço é bifurcado e o processo pai sai. Para daemons comuns, a menos que você tenha certeza de que esse método inicial não atende às suas necessidades, pode começar com esse tipo. Com esse tipo de inicialização, PIDFile= também deve ser especificado para que o systemd possa acompanhar o processo principal do serviço

 Senhorio| Publicado em 15/12/2021 16:55:14 |
Comando EnvironmentFile

O EnvironmentFile é semelhante à diretiva Environment, mas lê variáveis de ambiente a partir de um arquivo de texto. O arquivo de texto deve conter atribuições de variáveis separadas por quebras de linha

exemplo

Você pode pegar esse arquivo de ambiente e usar suas variáveis da seguinte forma:



 Senhorio| Publicado em 04/01/2022 15:56:55 |
 Senhorio| Publicado em 05/01/2022 09:48:21 |
Caminho padrão do arquivo de serviço do Docker /usr/lib/systemd/system/docker.service

 Senhorio| Publicado em 23/01/2022 22:57:56 |
Veja todos os status de serviço



Questione se um serviço está ligado, usando o NFS como exemplo:

 Senhorio| Publicado em 25/02/2025 17:01:08 |
Serviços de arranque em massa que começam com ABC

 Senhorio| Publicado em 11/04/2025 15:57:14 |
DefaultTimeOutStartSec= e DefaultTimeOutStopSec= padrão para 90 segundos no Gerenciador de Sistema e 90 segundos no Gerenciador de Usuários.

O login do hiperlink está visível.

Veja a configuração do serviço especificado com o seguinte comando:


Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com