Systemd traz o conceito de unidades systemd no Linux. Para e.g., unidade de serviço, unidade de destino, unidade de montagem, etc. são tipos de unidade com extensão de arquivo como .serviço, .alvo, .montar respectivamente. O arquivo de configuração que representa essas unidades é armazenado nos diretórios: / usr / lib / systemd / system /, / run / systemd / system /, / etc / systemd / system /
As versões anteriores do Red Hat Enterprise Linux (RHEL) usavam scripts init. Esses scripts foram escritos em BASH e estavam localizados no diretório “/ etc / rc.d / init.d / ”. Estes são scripts usados para controlar os serviços e daemons. Mais tarde, no RHEL 7, as unidades de serviço foram introduzidas para substituir os scripts de inicialização. O Fedora, que é um SO upstream do Red Hat Enterprise Linux, começou a usar o systemd a partir do Fedora versão 15.
Unidades de serviço têm .extensões de arquivo de serviço e têm funções semelhantes aos scripts de inicialização. “Systemd” usa o utilitário “systemctl” para gerenciar os serviços do sistema. Ele pode ser usado para ver, iniciar, parar, reiniciar, habilitar ou desabilitar esses serviços.
Vantagens do Systemd sobre o sistema Init
- Com o systemd, podemos priorizar os serviços necessários em vez de serviços menos significativos.
- Os cgroups são usados pelo systemd para acompanhar os processos e controlar a execução.meio Ambiente.
- O Systemd ainda suporta o processo init antigo e tem mais controle.
- Systemd é capaz de lidar com modificações dinâmicas de configuração do sistema.
O que vamos cobrir?
Neste guia, aprenderemos sobre como gerenciar processos systemd. Veremos como habilitar e desabilitar serviços de inicialização na inicialização e como fazer operações de serviço como iniciar, parar, reiniciar, etc. Realizamos os exercícios abaixo em estações de trabalho Fedora 30, que serão mais aplicáveis a outros sistemas operacionais Linux.
Liste os serviços de inicialização em Boot no Fedora Linux
O antigo método SysV usa o serviço e chkconfig comandos para gerenciar os serviços. Esses comandos agora são substituídos pelos comandos do systemd como systemctl. Vamos ver algumas das operações de “systemctl” em vários serviços no Linux.
1. Para listar todos os serviços em execução em seu sistema, junto com seus estados (habilitado ou desabilitado), use o comando abaixo:
$ sudo systemctl list-unit-files --type = service
Um serviço pode ter três estados: 1) ativado 2) desativado 3) estático
Um serviço habilitado possui um link simbólico em um .deseja um diretório, enquanto um serviço desativado não tem um. Um serviço estático não tem uma seção de instalação no script de inicialização correspondente. Portanto, não pode ser habilitado ou desabilitado.
Para obter mais detalhes dos serviços, o comando abaixo deve ser usado.
serviço $ sudo systemctl -at
Resumo dos nomes das colunas acima:
UNIT - nome da unidade systemd (aqui um nome de serviço).
LOAD - Especifique se a unidade systemd foi carregada corretamente ou não.
ATIVO - Estado da unidade (aqui serviço).
SUB - Um subestado de uma ativação de unidade.
DESCRIÇÃO - Uma breve informação da unidade.
Também podemos usar o seguinte comando:
$ sudo ls / lib / systemd / system / *.serviçoou
$ sudo / etc / systemd / system / *.serviço
O “/ Etc / inittab” agora é substituído por “/ Etc / systemd / system /” no systemd. Este diretório agora contém os links simbólicos para os arquivos no diretório “/ Usr / lib / systemd / system”. Os scripts de inicialização são colocados em “/ usr / lib / systemd / system”. Um serviço deve ser mapeado para “/ Etc / systemd / system /” para iniciá-lo na inicialização do sistema. Para este propósito, o comando systemctl é usado no Fedora e em outros sistemas Linux mais recentes.
2. Vejamos o exemplo abaixo de ativação do serviço httpd:
$ sudo systemctl enable httpd.serviço
Além disso, podemos usar o comando abaixo para filtrar todos os serviços habilitados:
$ sudo systemctl list-unit-files | grep habilitado
ou use o comando:
$ sudo systemctl | grep em execução
3. Para listar todos os serviços ativos (em execução), use o comando:
4. Para ver quais serviços estão habilitados para iniciar automaticamente na inicialização do sistema, também podemos usar o seguinte comando:
$ sudo systemctl list-unit-files --type = service --state = enabled --all
5. Da mesma forma, podemos verificar os serviços desabilitados para iniciar na inicialização com o comando:
$ sudo systemctl list-unit-files --type = service --state = disabled --all
6. Também podemos ver o tempo que cada serviço está levando na inicialização:
$ sudo systemd-analise a culpa
7. Para verificar se um serviço está habilitado para inicialização automática na inicialização, use o comando:
$ sudo systemctl is-enabled xxxColoque o nome do serviço no lugar de xxx. E.g., no caso do serviço httpd, o comando será:
$ sudo systemctl is-enabled httpd.serviçoou
$ sudo systemctl is-enabled httpd
8. Para verificar o status de um serviço, use o comando:
$ sudo systemctl status xxx.serviçoPor exemplo, para verificar o status do serviço sshd:
$ sudo systemctl status sshd.serviço
9. Para verificar se um serviço está rodando ou não, basta executar o comando abaixo:
$ sudo systemctl is-active xxx.serviçoPor exemplo, para verificar o status do telnet:
$ sudo systemctl is-active telnet.serviço
10. Para iniciar um serviço inativo ou inativo, use o comando:
$ sudo systemctl start xxx.serviçoPor exemplo, para iniciar um serviço sshd:
$ sudo systemctl start sshd
11. Para desativar um serviço na inicialização do sistema
Por exemplo, para desativar o serviço httpd:
$ sudo systemctl disable httpd.serviçoou
$ sudo systemctl disable httpd
12. Para reiniciar um serviço em execução
$ sudo systemctl restart xxx.serviçoPara reiniciar o serviço sshd, use o comando:
$ sudo systemctl restart sshdSe o serviço ainda não estiver em execução, ele será iniciado.
13. Para recarregar um serviço em execução
$ sudo systemctl reload xxx.serviçoPor exemplo, recarregue o serviço httpd com:
$ sudo systemctl reload httpd.serviço
Este comando recarrega a configuração de um serviço específico. Para recarregar o arquivo de configuração da unidade do systemd, precisamos do comando:
$ sudo systemctl daemon-reload14. Para listar todas as dependências de um serviço:
$ sudo systemctl list-dependencies xxx.serviçoNo caso do serviço httpd, o comando será:
$ sudo systemctl list-dependencies httpd.serviço
Conclusão
Neste guia, vimos várias maneiras de gerenciar serviços com o utilitário systemd, como habilitar serviços no momento da inicialização, iniciá-los e interrompê-los, etc. Se você estava acostumado com o comando de serviço do antigo Sysvinit, deve mudar para o systemd, pois tem mais recursos e é o sistema init padrão nas versões mais recentes do Fedora, RHEL e na maioria das outras distribuições principais do Linux.