Automatize Serviços no Boot do Linux: CentOS, RHEL & Ubuntu

Um conhecimento fundamental para qualquer administrador de sistemas é a configuração de serviços para que sejam iniciados automaticamente durante o processo de *boot* do servidor. Isso garante que, após uma reinicialização, os serviços essenciais estejam disponíveis sem intervenção manual.

Existem diversas razões para que um servidor precise ser reiniciado, incluindo:

  • Manutenções programadas regularmente (semanal ou mensalmente).
  • Reinicializações inesperadas devido a falhas de hardware ou do kernel do sistema operacional.

Configurar corretamente o *start* automático de serviços evita a necessidade de iniciá-los manualmente após cada reinício, otimizando o tempo e a eficiência operacional.

Em outras palavras, estamos falando de automatização, o que sempre é uma vantagem, certo?

Os exemplos a seguir ilustram como realizar essa configuração em duas distribuições Linux amplamente utilizadas, testados em servidores DigitalOcean.

Configuração em CentOS ou RHEL 6.x

Para exemplificar, utilizaremos o servidor web Apache HTTP. Contudo, o procedimento é o mesmo para qualquer outro serviço que você deseje iniciar automaticamente no Red Hat Enterprise Linux (RHEL) ou no CentOS 6.

Você pode usar qualquer nome para o arquivo de script. Neste exemplo, manteremos o nome `httpd`.

  • Primeiramente, obtenha acesso root ao seu servidor Linux.
  • Em seguida, crie ou copie o seu script para o diretório `/etc/init.d/`.
[[email protected] init.d]# ls -ltr httpd
-rwxr-xr-x. 1 root root 3371 Jan 6 08:56 httpd
[[email protected] init.d]#

Iremos usar a ferramenta `chkconfig`, que já vem instalada por padrão no Linux ou CentOS.

  • Adicione o script para iniciar no boot do sistema utilizando o comando `chkconfig` com o parâmetro `–add`.
[[email protected] init.d]# chkconfig --add httpd
[[email protected] init.d]# chkconfig httpd on
  • Verifique se o script foi adicionado com sucesso usando o comando `–list`.
[[email protected] init.d]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[[email protected] init.d]#

Pronto! O script `httpd` será executado para iniciar o serviço automaticamente durante o *boot* do Linux.

Caso precise desativar o serviço para que ele não seja iniciado automaticamente, você pode usar os seguintes comandos:

chkconfig httpd off
chkconfig --del httpd

Configuração em RHEL ou CentOS 7.x/8.x

A configuração do *start* automático de serviços no RHEL 7 é um pouco diferente do RHEL 6. Ela utiliza o `systemd` para gerenciar os serviços.

A maioria dos softwares, como Apache, PHP, MySQL e scripts Nginx, são adicionados como serviços quando são instalados.

Vamos usar o exemplo do PHP-FPM.

Primeiro, verifiquemos o status do php-fpm (considerando que os scripts já estejam em `/usr/lib/systemd/system/`).

[[email protected] ~]# systemctl status php-fpm
php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
Active: inactive (dead) 
[[email protected] ~]#

Como se pode ver, o status está como `disabled`, indicando que o serviço não está configurado para iniciar automaticamente.

Vamos habilitar o php-fpm para iniciar durante o *boot* utilizando o comando `systemctl`.

[[email protected] ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[[email protected] ~]#

Agora, verifiquemos o status novamente.

[[email protected] ~]# systemctl status php-fpmphp
php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)    Active: inactive (dead) 
[[email protected] ~]#

O php-fpm agora está configurado para iniciar automaticamente. Você pode testar reiniciando o servidor.

Se precisar desativar o serviço para que ele não inicie automaticamente durante o *boot*, use o seguinte comando:

systemctl disable php-fpm

Você pode também querer conferir este post explicando os serviços systemd e como configurar a inicialização automática.

Configuração em Ubuntu

A configuração de serviços para iniciarem automaticamente no Ubuntu é um pouco diferente. Vamos assumir que o nome do script seja `Nginx`.

  • Faça login no servidor Ubuntu como usuário root.
  • Copie o script para a pasta `/etc/init.d/`.
  • Execute o comando abaixo.
update-rc.d nginx defaults
  • Reinicie o servidor para verificar se o serviço é iniciado corretamente.

Espero que esta informação seja útil para você.

A administração de sistemas é sempre um desafio interessante. Se você deseja aprimorar suas habilidades, confira este Curso Udemy.

Em seguida, veja como investigar a causa de reinicializações inesperadas no Linux.
Você também pode encontrar informações sobre como instalar/atualizar o PHP-FPM 5.6 no CentOS 6.x.

Gostou do artigo? Compartilhe com seus colegas!