Serviço vs. Systemctl

Servico Vs Systemctl



O service e o systemctl são dois utilitários de linha de comando usados ​​para gerenciar serviços do sistema. Ambos os utilitários pertencem a dois sistemas init diferentes, SysV e systemd, respectivamente.

Neste guia, discutirei os comandos service e systemctl e como eles são diferentes quando se trata de gerenciamento de serviços.

Antes de prosseguir, vamos primeiro entender dois sistemas de inicialização Linux populares; Sistema e Systemd.







Sistema V versus Systemd

O sistema init no Linux é uma parte crucial do processo de inicialização. É o primeiro processo com PID 1 que inicia quando o sistema é inicializado. Em seguida, inicia os processos presentes no arquivo inittab. O System V também conhece um SysV e o systemd são sistemas de inicialização Linux populares.



O SysV é um sistema init mais antigo e faz parte de distribuições Unix e Linux mais antigas. Ele gerencia os serviços do sistema usando os scripts localizados em /etc/init.d. Algumas distribuições Linux que ainda usam SysV são Slackware, Gentoo e antiX Linux.



Por outro lado, sistema lançado em 2010 e rapidamente adotado por muitas distribuições Linux. O sistema init systemd gerencia os serviços por meio de arquivos .service. Agora faz parte de todas as distribuições Linux modernas, incluindo Red Hat Enterprise Linux, CentOS, Amazon Linux, Fedora, Debian, Ubuntu e distribuições baseadas nesses sistemas operacionais.





O systemd é muito mais eficiente comparado ao SysV. Ele fornece tempo de inicialização mais rápido, gerenciamento eficiente de serviços e tratamento de dependências.

Ambos os sistemas init fornecem dois utilitários de linha de comando para gerenciamento de serviços.



Nas seções seguintes do guia, discutirei esses dois utilitários.

Comando de serviço

O serviço comando é um wrapper de script que executa scripts localizados no /etc/init.d diretório. Foi desenvolvido para gerenciar o serviço de SysV ou Sistema V sistema de inicialização. As distribuições Linux que usam SysV como sistema init usam o serviço comando para gerenciamento de serviço.

A sintaxe geral para usar o comando de serviço é fornecida abaixo.

serviço [ Nome do Serviço ] [ Ação ]

Para obter o status dos serviços controlados pelo System V, use o comando service com o –status-tudo opção.

serviço --status-tudo

O + indica que o serviço está em execução e o mostra que o serviço está inativo.

O status atual de qualquer serviço específico também pode ser verificado mencionando o nome do serviço.

serviço [ Nome do Serviço ] status

Alguns outros comandos de serviço úteis, como iniciar, parar e reiniciar um serviço, estão listados abaixo.

serviço [ Nome do Serviço ] começar

serviço [ Nome do Serviço ] parar

serviço [ Nome do Serviço ] reiniciar

Este comando de serviço fornece controle básico para gerenciar serviços. A maioria das distribuições Linux substituiu o SysV como um sistema init, mas devido à compatibilidade legada, este comando ainda vem pronto para uso em muitas distribuições Linux mais recentes.

Comando systemctl

Usando o comando systemctl, você pode controlar serviços no /lib/systemd/sistema e /etc/systemd/system diretórios. É um componente do systemd; um sistema init encontrado na maioria das distribuições Linux contemporâneas.

O systemctl foi projetado para fornecer mais controle sobre o gerenciamento de serviços do sistema. A sintaxe geral para usar o comando systemctl é fornecida abaixo:

sistemactl [ opção ] [ Nome do Serviço ]

Para verificar o status de todos os serviços, use o seguinte comando.

unidades de lista systemctl --tipo =serviço --todos

Para um uso de serviço específico:

status do systemctl [ Nome do Serviço ]

Os comandos para gerenciamento básico do serviço usando systemctl são fornecidos abaixo:

sistemactl habilitar [ Nome do Serviço ]

início do systemctl [ Nome do Serviço ]

parada do systemctl [ Nome do Serviço ]

desabilitar systemctl [ Nome do Serviço ]

reinicialização do systemctl [ Nome do Serviço ]

O comando systemctl vai além quando se trata de controlar serviços. A tabela abaixo contém alguns comandos avançados do systemctl.

caminhos de lista Para listar o caminho de todos os serviços na memória
está ativo [service_name] Para verificar se o serviço ou unidade está funcionando ou não
dependências de lista [service_name] Para imprimir a lista de dependências do serviço especificado
falha na redefinição Para redefinir os serviços que não foram carregados devido a alguma anormalidade
máscara [nome_serviço] Para desabilitar o serviço e impossibilitar a inicialização
obter padrão Para imprimir o nível de execução ou destino padrão
definir padrão [alvo] Para definir o nível de execução ou destino padrão
o sistema está em execução Para verificar o estado operacional do sistema
reinício Para reinicializar o sistema
desligar Para desligar o sistema

Por que ainda existe um comando de serviço em distribuições Linux com systemd init System

O comando service ainda faz parte de muitas distribuições Linux porque é um script wrapper e abstrai o sistema init subjacente, seja SysV ou systemctl. Por exemplo, no Ubuntu, o comando service redireciona para o systemctl.

Conclusão

O service e o systemctl são dois utilitários de linha de comando pertencentes aos sistemas SysV e systemd init, respectivamente. Apesar da substituição do comando service nas distribuições Linux modernas, ele continua sendo uma ferramenta fundamental para manutenção de serviços devido à simplicidade e compatibilidade. O systemctl, por outro lado, faz parte de todas as distribuições Linux atuais e oferece opções avançadas para administração de serviços.