Como usar o utilitário SystemCTL no Linux

Como usar o utilitário SystemCTL no Linux
Se você é um administrador experiente de sistema ou um novo usuário do Linux, o gerenciamento de serviços é uma das operações fundamentais que você terá que realizar. Portanto, ter uma compreensão firme de como os serviços funcionam e como gerenciá -los é uma grande vantagem.

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.

  • .serviço - Os arquivos da unidade de serviço definem como o Systemd gerencia um serviço. Eles normalmente terminam em .Extensão de serviço. Os arquivos da unidade de serviço descrevem como iniciar, parar, recarregar e reiniciar um serviço e as dependências necessárias para gerenciar o serviço.
  • .alvo - As unidades -alvo fornecem pontos de sincronização para outros serviços durante a inicialização.
  • .fatiar - Arquivos de unidade de fatia codificam informações sobre unidades de fatia do Systemd. As unidades de fatia fazem parte da árvore do grupo de controle Linux que permite a alocação de recursos e a restrição aos processos associados a uma fatia. Você pode aprender mais sobre o controle de recursos do SystemD aqui.
  • .soquete - Um arquivo de unidade de soquete codifica informações sobre soquete de rede, IPC ou um buffer FIFO do sistema de arquivos controlado e gerenciado para o Systemd, que o Systemd usa para ativação baseada em soquete.
  • .dispositivo - Configurações da unidade de dispositivo definem uma unidade de dispositivo como exposta na árvore de dispositivo SYSFS/UDEV.
  • .cronômetro - As unidades do timer definem um temporizador gerenciado e controlado pelo Systemd para ativação programada.
  • .instantâneo - Os arquivos da unidade instantânea permitem reversão do estado atual do sistema depois de fazer alterações. Nós os criamos usando o comando Systemd Snapshot.
  • .trocar - As unidades de troca codificam informações sobre o espaço de troca, como o nome do dispositivo ou o caminho do espaço de troca.
  • .montar - Os arquivos da unidade de montagem codificam informações sobre os pontos de montagem no sistema gerenciado pelo Systemd.
  • .Automount - Estes são arquivos de unidade que definem pontos de montagem que são montados automaticamente.

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.

  • UNIDADE - A primeira coluna é a unidade '.'Isso mostra o nome do arquivo da unidade.
  • CARREGAR - Isso mostra se a definição da unidade carregou corretamente.
  • ATIVO - Isso mostra o estado de ativação de alto nível.
  • SUB - Isso mostra o estado de ativação de baixo nível. Os valores nesta coluna dependerão do tipo de unidade.
  • DESCRIÇÃO - A descrição do arquivo da unidade.

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.