Se você quiser saber mais sobre sistemas init, é importante primeiro entender os comandos systemctl e service e suas diferenças subjacentes.
Principais conclusões
- Os comandos service e systemctl no Linux são vitais e extremamente semelhantes, sendo o systemctl um comando mais versátil e poderoso.
- Ambos service e systemctl permitem que os usuários configurem e interajam com os serviços do sistema, mas pertencem a diferentes sistemas de inicialização (SysVinit e systemd, respectivamente).
- Service opera em arquivos de sistema de inicialização em /etc/init.d, enquanto systemctl funciona com arquivos em /lib/systemd. Familiarizar-se com ambos os comandos é importante para gerenciar os serviços do sistema de forma eficaz.
service e systemctl são comandos vitais e extremamente semelhantes no Linux. Eles são tão semelhantes que é fácil imaginar quais diferenças existem entre eles - e se você pode usar os dois comandos de forma intercambiável.
Conhecer os detalhes mais sutis sobre service e systemctl permitirá que você trabalhe com eles perfeitamente.
O que é o comando service no Linux?
No Linux, o comando service é um script wrapper que permite aos usuários configurar e interagir facilmente com os serviços do sistema. Ele precede o systemd e funciona principalmente com os scripts encontrados em /etc/init.d.
Embora o systemctl tenha superado muito o significado anterior do serviço, ele continua relevante por meio de muitos recursos legados.
A mudança entre os sistemas de inicialização associados — SysVinit para systemd — foi controversa, mas os crescentes desafios à função do sistema init original tornaram isso necessário.
O systemd inicia os serviços em paralelo em vez de uma sequência serial, tornando seu tempo de inicialização mais rápido que o SysVinit - e oferece um controle um pouco mais sofisticado de daemons do sistema através da interface de linha de comando (CLI).
O que é o comando systemctl no Linux?
Assim como service, systemctl é um comando incrivelmente versátil que permite ativar, recarregar, iniciar, parar e verificar o status dos serviços rodando em seu sistema Linux.
O systemctl serve como uma interface poderosa e fácil de usar para configurar os arquivos no systemd - por exemplo, são necessários apenas um ou dois comandos para desabilitar um serviço na inicialização usando o systemctl.
systemctl é compatível com versões anteriores do sistema de inicialização, SysVinit, usado principalmente com service. O systemctl não serve como sucessor direto do serviço, mas é muito mais versátil em termos de ferramentas que oferece para gerenciar os serviços do sistema.
Você pode realizar tarefas como mascarar ou desabilitar um serviço em apenas uma ou duas linhas.
As diferenças entre service e systemctl
service e systemctl servem em grande parte ao mesmo propósito. Muitas das semelhanças entre eles foram inseridas deliberadamente para permitir aos usuários uma transição mais perfeita do serviço para o systemctl.
No entanto, existem algumas diferenças entre os dois que você deve conhecer ao começar a trabalhar com o sistema de inicialização no Linux.
1. Diferentes sistemas de inicialização
A diferença mais significativa entre service e systemctl é que eles pertencem a diferentes sistemas de inicialização. service pertence ao SysVinit (System V Init), também conhecido como processo clássico de inicialização do Linux.
systemctl pertence ao systemd, o sucessor do SysVinit e o processo de inicialização moderno usado em muitos sistemas Linux.
Como service e systemctl fazem parte de diferentes processos de inicialização, eles operam em arquivos de sistema de inicialização em diretórios diferentes. service funciona com os arquivos do sistema de inicialização encontrados em /etc/init.d, enquanto systemctl trabalha com os arquivos do sistema de inicialização encontrados em /lib/systemd.
Geralmente, o sistema de inicialização que você encontrará nas instalações prontas para uso do Linux é o systemd - portanto, convém se familiarizar com o uso do systemctl para interagir com ele.
Se você pretende trabalhar com sistemas que precedem ou coincidem com o lançamento do systemd em 2010, não custa nada se familiarizar com o uso do comando service também.
2. Compatibilidade
service continua sendo um comando extremamente útil em termos de compatibilidade - como um comando wrapper, ele é capaz de redirecionar para o gerenciador de serviços usado em sistemas diferentes. Você deve planejar aprendê-lo e torná-lo parte de seu arsenal se for trabalhar com uma variedade de sistemas Linux.
3. Funções subjacentes
Outra diferença fundamental entre systemctl e service está em como eles operam. service é um comando de alto nível que redireciona para o gerenciador de serviço subjacente usado em um sistema específico, o que significa que é bastante versátil entre os sistemas. Ele pode redirecionar para /etc/init.d, upstart ou até mesmo systemctl. Os comandos systemctl, por sua vez, interagem diretamente com o systemd.
4. Capacidade
Em termos do que você pode realizar, é seguro dizer que systemctl excede em muito o serviço em poder. Além das funções básicas – como iniciar, parar, habilitar ou desabilitar um determinado serviço – você também pode definir configurações avançadas com systemctl.
O serviço é mais limitado por causa de sua compatibilidade necessária com os gerenciadores de serviço subjacentes dos quais ele depende.
Configure os serviços do sistema com eficiência no Linux
service e systemctl são comandos incrivelmente importantes para gerenciar serviços do sistema. Se você deseja apenas tirar o melhor proveito do seu sistema Linux ou pretende trabalhar em redes corporativas, familiarizar-se com os dois comandos é vital.
Felizmente, existem muitos tutoriais excelentes que podem ajudá-lo a se tornar um mestre no uso de systemctl e service no terminal.