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, .montagem respectivamente. O arquivo configuracional que representa essas unidades é armazenado dentro dos diretórios:/usr/lib/systemd/system/,/run/systemd/system/,/etc/systemd/system/
Versões anteriores do Red Hat Enterprise Linux (RHEL) usaram scripts init. Esses scripts foram escritos em bash e foram 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 init. O Fedora, que é um sistema operacional a montante do Red Hat Enterprise Linux, começou a usar o Systemd da versão Fedora 15.
As unidades de serviço têm .Extensões de arquivo de serviço e têm funções semelhantes aos scripts init. "Systemd" usa o utilitário "SystemCTL" para gerenciar serviços do sistema. Pode ser usado para ver, iniciar, parar, reiniciar, ativar ou desativar esses serviços.
Vantagens do sistema SystemD sobre o Init
O que vamos cobrir?
Neste guia, aprenderemos sobre o gerenciamento de processos do Systemd. Veremos como habilitar e desativar os serviços de inicialização em inicialização e como fazer operações de serviço como iniciar, parar, reiniciar, etc. Realizamos os exercícios abaixo sobre as estações de trabalho do Fedora 30, que serão mais aplicáveis a outros sistemas operacionais Linux.
Lista de serviços de inicialização no Boot in Fedora Linux
O método antigo sysv usa o serviço e chkconfig comandos para gerenciar os serviços. Esses comandos agora são substituídos pelos comandos 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, juntamente com seus estados (ativados ou desativados), use o comando abaixo:
$ sudo systemctl list-unit-files --type = serviço
Um serviço pode ter três estados: 1) ativado 2) desativado 3) estático
Um serviço ativado tem um symblink em um .quer diretório, enquanto um serviço desativado não tem um. Um serviço estático não possui uma seção de instalação no script init correspondente. Portanto, não pode ser ativado ou desativado.
Para obter mais detalhes dos serviços, o comando abaixo deve ser usado.
$ sudo systemctl -At Service
Resumo dos nomes de colunas acima:
Unidade - Nome da unidade Systemd (aqui um nome de serviço).
Carregar - 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 unitária.
Descrição - Uma breve informação da unidade.
Também podemos usar o seguinte comando:
$ sudo ls/lib/systemd/system/*.serviço
ou
$ sudo/etc/systemd/system/*.serviço
O “/Etc/inittab” agora é substituído por “/Etc/Systemd/System/” em Systemd. Este diretório agora contém os symblinks dos arquivos no diretório “/Usr/lib/systemd/sistema”. Os scripts init são colocados no “/usr/lib/systemd/system”. Um serviço deve ser mapeado para “/Etc/Systemd/System/” Para iniciá -lo na inicialização do sistema. Para esse fim, o comando SystemCTL é usado no Fedora e em outros sistemas Linux mais recentes.
2. Vamos ver o exemplo abaixo de ativar o serviço HTTPD:
$ sudo systemctl ativar httpd.serviço
Além disso, podemos usar o comando abaixo para filtrar todos os serviços ativados:
$ sudo systemctl list-unidade-arquivos | Grep ativado
ou use o comando:
$ sudo systemctl | Grep funcionando
3. Para listar todos os serviços ativos (em execução), use o comando:
$ sudo systemctl -t Service - -estado = ativo
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 = habilitado --l
5. Da mesma forma, podemos verificar os serviços desativados para iniciar no Boot com o comando:
$ sudo systemctl list-unit-files --type = service--state = desativado --l
6. Também podemos ver a que horas cada serviço está tomando na startup:
$ sudo systemd-analyze culpa
7. Para verificar se um serviço está ativado para o AutoStart na inicialização, use o comando:
$ sudo systemctl é habilitado para xxx
Coloque o nome do serviço no lugar de xxx. E.g., No caso do serviço httpd, o comando será:
$ sudo systemctl está habilitado para httpd.serviço
ou
$ sudo systemctl está habilitado para httpd
8. Para verificar o status de um serviço, use o comando:
$ sudo systemctl status xxx.serviço
Por exemplo, para verificar o status do serviço SSHD:
$ sudo systemctl status sshd.serviço
9. Para verificar se um serviço está em execução ou não, basta executar o comando abaixo:
$ sudo systemctl is attive xxx.serviço
Por exemplo, para verificar o status Telnet:
$ sudo systemctl ist attive telnet.serviço
10. Para iniciar um serviço morto ou inativo, use o comando:
$ sudo systemctl start xxx.serviço
Por exemplo, para iniciar um serviço SSHD:
$ sudo systemctl start sshd
11. Para desativar um serviço na inicialização do sistema
$ sudo systemctl desativar xxx
Por exemplo, para desativar o serviço HTTPD:
$ sudo systemctl desativando httpd.serviço
ou
$ sudo systemctl desativando httpd
12. Para reiniciar um serviço de corrida
$ sudo systemctl reiniciar xxx.serviço
Para reiniciar o serviço SSHD, use o comando:
$ sudo systemctl reiniciar sshd
Se o serviço ainda não estiver em execução, ele será iniciado.
13. Para recarregar um serviço de corrida
$ sudo systemctl recarregar xxx.serviço
Por exemplo, recarregue o serviço HTTPD com:
$ sudo systemctl recarregar 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 -load
14. Para listar todas as dependências de um serviço:
$ sudo systemctl list dependências xxx.serviço
No caso do serviço httpd, o comando será:
$ sudo systemctl list dependências httpd.serviço
Conclusão
Neste guia, vimos várias maneiras de gerenciar serviços com o Systemd Utility, como ativar os serviços no momento da inicialização, iniciando e interrompendo, etc. Se você estava acostumado com o comando de serviço do antigo sysvinit, mude para o Systemd, pois possui mais recursos e é o sistema init padrão em versões mais recentes do Fedora, Rhel e a maioria das outras principais distribuições Linux.