Este tutorial orienta você através do básico do gerenciamento de serviços no Linux e como usar o SystemCTL para gerenciar serviços, obter informações sobre unidades do sistema e obter informações úteis sobre o estado dos serviços em seu sistema.
O que é SystemCtl?
SystemCTL é um utilitário de linha de comando Linux usado para controlar e gerenciar o Systemd e os serviços. Você pode pensar no SystemCTL como uma interface de controle para o serviço Systemd Init, permitindo que você se comunique com o Systemd e execute operações.
SystemCtl é um sucessor de init.D sistema; Ele contém bibliotecas, daemons e utilitários que você pode usar para gerenciar serviços no sistema Linux.
O que é um serviço/unidade?
Na linguagem Systemd, um serviço ou unidade é um recurso ou um objeto Systemd está ciente e sabe como abordar.
Embora seja tecnicamente correto classificar uma unidade como um serviço, no Systemd, as unidades tendem a ser mais abstratas e frequentemente compostas por pools de recursos, montagens de sistema de arquivos, protocolos de rede, dispositivos e serviços nativos de Linux.
As unidades são definidas em um arquivo conhecido como um arquivo de unidade. O Systemd pode gerenciar arquivos da unidade de qualquer local, mas seu local principal é/etc/Systemd/System Directory. Os arquivos da unidade neste diretório são principalmente fornecidos pelo usuário. Comparado a outros locais, o gerente do Systemd atribuirá maior precedência a arquivos da unidade no diretório acima.
OBSERVAÇÃO: Você também pode encontrar arquivos de unidade localizados no diretório/lib/systemd/system, que contém arquivos unitários fornecidos pelo sistema e pacotes instalados. Certifique -se de verificar os dois locais ao editar um arquivo de unidade.
Tipos de unidades Systemd
Os arquivos da unidade são rotulados com um sufixo no arquivo da unidade, que dão ao administrador uma indicação de seu objetivo com base no sufixo.
A seguir, são apresentados os arquivos da unidade encontrados no Systemd.
Esses são alguns dos arquivos da unidade gerenciados pelo Systemd. Normalmente, esses arquivos da unidade em um sistema trabalham em conjunto para gerenciar o sistema, serviços, daemons e outros recursos no sistema.
OBSERVAÇÃO: Existem outros arquivos da unidade, mas você não precisará se preocupar muito com eles, a menos que esteja mergulhando profundamente no kernel.
Listar arquivos da unidade
Para visualizar os arquivos da unidade disponíveis no sistema, você pode listar os arquivos em/lib/systemd/system ou etc/systemd/system.
Felizmente, o Systemd tem um comando para isso. Podemos executar o comando:
$ sudo systemctl list-unidades
Executar este comando mostrará as unidades disponíveis no sistema.
Para filtrar apenas arquivos de unidade específicos, você pode usar a opção -Type = [unidade -tipo]. Por exemplo, para mostrar arquivos de unidades de serviço, usamos o comando:
$ sudo systemctl list-units --type = serviço
Aqui está um exemplo de saída:
A saída do comando systemctl list-units usa um método organizacional baseado em coluna.
Aqui está o que cada coluna representa.
Você também pode filtrar as unidades por seus estados. Por exemplo, para mostrar apenas unidades inativas, use o comando:
$ sudo systemctl list -units -state = inativo
O acima mostra unidades inativas (ou mortas). A maioria das unidades nesse estado é iniciada antes das sessões de usuário; Eles incluem Plymouth, serviço de ativa de rede, modo de resgate, banco de dados manual e muito mais.
Para mostrar todos os arquivos da unidade no sistema, você pode anexar -toda a opção ao comando List -Units.
$ sudo systemctl list -unidades -odas
Você pode rolar a lista de unidades disponíveis pressionando a tecla de espaço.
Como visualizar o conteúdo do arquivo de unidade
Para visualizar as entradas e a configuração em um arquivo de unidade, você pode dizer ao Systemd para chamar o comando CAT e o nome da unidade.
Por exemplo, para mostrar o conteúdo da unidade Plymouth, use o comando
$ sudo Systemctl Cat Plymouth
Este comando despejará o conteúdo do arquivo, como mostrado abaixo:
Como editar arquivos da unidade
Para editar arquivos da unidade, você pode usar o comando systemd seguido pela opção Editar e o nome da unidade.
$ sudo systemctl editar Plymouth
O comando lançará o editor de texto Nano, permitindo editar o arquivo da unidade especificado.
OBSERVAÇÃO: A menos que seja necessário, EVITAR Editando arquivos de unidade crítica provisionados pelo sistema.
Gerenciando serviços com SystemCTL
Arquivos de unidade que terminam com .Serviço é fácil de gerenciar usando o utilitário Systemd, SystemCtl. A seguir, são operações que podemos executar com o SystemCtl.
Como iniciar serviços
Para iniciar um serviço com o SystemCTL, chamamos o comando:
$ sudo systemctl start nginx.serviço
No comando acima, dissemos ao Systemd para iniciar o serviço nginx usando o nginx.Arquivo da unidade de serviço.
Passar o sufixo de arquivo de unidade completo com o SystemCTL não é um requisito. Você pode usar o nome do serviço, como:
$ sudo systemctl start nginx
Na maioria das unidades de serviço, não há saída se o serviço iniciar com sucesso. No entanto, se ocorrer um erro, o Systemd exibirá o erro e o código de status.
Como parar os serviços
Para parar um serviço, use o argumento de parada no comando SystemCTL
$ sudo systemctl stop nginx
Da mesma forma, a operação de parada não fornece uma saída após a conclusão bem -sucedida.
Como recarregar os serviços
Recarregar um serviço funciona interrompendo os processos do trabalhador, aplicar alterações de configuração e reiniciar os processos do trabalhador. Isso não desligou o próprio serviço real.
Esse recurso pode ser útil onde os serviços precisam estar online, como é o caso de bancos de dados e servidores da Web.
Para recarregar um serviço no SystemCTL, usamos o comando:
$ sudo systemctl recarregar nginx
Como reiniciar os serviços
Por outro lado, a reinicialização desligará o serviço e o trabalhador processa e os reiniciará. O processo de reinicialização pode causar algum tempo de inatividade, tornando -o muito aplicável ao solucionar problemas.
Para reiniciar um serviço, use o comando:
$ sudo systemctl reinicie nginx
Como ativar os serviços em inicialização
Se você deseja que um serviço específico seja executado durante a inicialização do sistema, você pode usar o comando Ativar.
Por exemplo:
$ sudo systemctl atabille nginx
O comando acima, no entanto, não permite o serviço durante uma sessão ativa. Para fazer isso, adicione a bandeira -agora.
$ sudo systemctl Ativar nginx - -agora
Se você deseja ativar um serviço personalizado que você criou, verifique se o Systemd pode acessar o arquivo da unidade. Não armazene o arquivo de unidade no diretório /domicílio. Para arquivos de unidade personalizados, certifique -se de colocá -los em/etc/systemd/system.
Como verificar o status do serviço
Para verificar o status de um serviço no Systemd, use o comando de status:
$ sudo status systemctl nginx
Este comando mostrará o status atual do serviço. A imagem abaixo mostra um serviço nginx ativo
Se um serviço for interrompido, você obterá uma saída semelhante à mostrada abaixo:
Conclusão
Neste guia, discutimos os conceitos de arquivos Systemd e Unit. Systemd é uma parte crítica do Linux, e as principais distribuições Linux agora adotaram seu uso. Portanto, saber como administrar e gerenciar pode ser muito vantajoso.