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!