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
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)