Como iniciar, parar, e reiniciar serviços em Linux

Como parar e iniciar serviços em Linux

Como administrador de sistemas, está incumbido de lidar com muita coisa. E essa lista cresce mais e mais complicada a cada dia. Para piorar a situação, as coisas mudam. Lembro-me, antigamente, que para iniciar ou parar um serviço Linux, tinha de abrir uma janela terminal, mudar para o /etc/rc.d/ (ou /etc/init.d, dependendo da distribuição que estava a utilizar), localizar o serviço, e a emissão do comando /etc/rc.d/SERVICE start|stop|restart (Onde SERVIÇO é o nome do serviço a ser iniciado, parado, ou reiniciado). Ao trabalhar entre as distribuições Redhat e Debian, que tinham tendência para se confundirem; eu tentaria emitir /etc/rc.d/service start numa distribuição, apenas para descobrir que deveria ter sido /etc/init.d/service start.

Isso mudou. Como um serviço é parado, iniciado, e reiniciado agora faz todo o sentido. Melhor ainda, tornou-se (na sua maior parte) universal.

Tipo de.

Como se inicia|stop| reiniciar um serviço dependerá se a sua distribuição utiliza o sistemad ou o init. Mesmo assim, poderá ser capaz de controlar esses serviços através de múltiplos meios. Deixe-me explicar.

systemctl vs. serviço

Este é o cerne da questão. Existem dois métodos oficialmente adoptados para controlar serviços:

  • systemctl
  • service

De qual deles dependerá se a sua distribuição fizer uso do systemd ou do init. A maioria das distribuições modernas fizeram a mudança para systemd, pelo que o systemctl é o gestor de serviços de eleição. No entanto, os velhos hábitos morrem duramente, pelo que muitos administradores ainda se agarram ao comando de serviço envelhecido. Felizmente, os criadores do systemd certificaram-se de manter o serviço e redireccioná-lo para systemctl. Para complicar mais as coisas, poderá encontrar um serviço aleatório que tenha instalado e que não tenha sido actualizado nem para o serviço nem para as ferramentas systemctl e tenha de o iniciar manualmente a partir de /etc/rc.d (ou /etc/init.d).

Por isso, ainda pode ser um pouco confuso.

Mas estamos à procura das melhores práticas aqui; e para iniciar|stopping| reiniciar aplicações no Linux, as melhores práticas começam e terminam com systemctl.

systemctl usage

A complicação termina aqui. De facto, a paragem|arranque|restauração dos serviços no Linux é agora bastante simples. Digamos que estamos no CentOS e queremos parar o servidor Apache. Para tal, abriríamos uma janela terminal e emitiríamos o comando:

 sudo systemctl stop httpd 

O servidor Apache pararia e seria devolvido ao prompt de bash. Para iniciar o mesmo serviço, emitiríamos o comando:

 sudo systemctl start httpd 

O serviço seria iniciado e seria devolvido ao seu prompt de bash.

Para reiniciar o mesmo serviço, emitiríamos o comando:

 sudo systemctl restart httpd 

O serviço seria reiniciado e seria devolvido ao prompt de bash.

Os comandos acima podem ser executados em CentOS, Ubuntu, Redhat, Fedora, Debian, e muitos mais.

service usage

Para tornar as coisas interessantes, o comando do serviço ainda funciona — mesmo para as distribuições que tenham migrado para systemd e systemctl. Isto significa que aqueles que instintivamente digitam serviço, quando precisam de reiniciar um serviço no Linux, não receberão um erro “Unknown command”. No caso do serviço, o comando será redireccionado para systemctl. De facto, quando executar o comando de serviço numa distribuição systemctl, verá claramente a informação redireccionada (Figura A).

Figura A

Figure A

O comando de serviço redireccionando para systemctl.

O uso do comando de serviço é um pouco diferente do systemctl. O nome do serviço e as opções start|stop|restart são trocadas:

 sudo service httpd startsudo service httpd stopsudo service httpd restart 

Em cada caso, verá o serviço redireccionado para systemctl, mas o serviço que está a tentar iniciar|stop|restart conseguirá fazê-lo.

Não é assim tão complicado

Compliquei a questão ao mencionar os antigos métodos de iniciar, parar, e reiniciar os serviços no Linux. Verdade seja dita, o processo de controlar serviços no Linux não é assim tão complexo; basta compreender o comando correcto a utilizar.

Para saber mais sobre o que o systemctl lhe pode fazer, certifique-se de emitir o comando man systemctl e de dar uma leitura à página man.

Também veja

  • Como monitorizar os seus servidores Linux com nmon (TechRepublic)
  • Como instalar o Stacer para optimização rápida do sistema Linux (TechRepublic)
  • Como utilizar o wget para descarregar ficheiros para o seu servidor Linux sem GUI (TechRepublic)
  • Como evitar que o Ubuntu sobrescreva /etc/resolv.conf (TechRepublic)
  • Novo e melhorado servidor de ficheiros Samba lançado (ZDNET)
sysctlhero.jpg
Image: Jack Wallen

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *