Desligar e Reiniciar Servidores Linux: Guia Completo com Comandos e Dicas

Gerenciando o Desligamento e Reinicialização em Sistemas Linux

Como administrador de sistemas, a ação de reiniciar ou desligar servidores é uma tarefa rotineira. Essas ações podem ser necessárias para manutenções programadas, como a aplicação de correções no sistema operacional, ou em resposta a falhas de hardware que demandam o desligamento do sistema para reparos.

O Linux oferece diversas formas de reiniciar ou desligar um servidor. Enquanto um sistema em condições normais deve responder a qualquer comando, um servidor que apresente problemas pode requerer uma reinicialização forçada. É importante lembrar que a maioria desses comandos exige privilégios de superusuário ou o uso do sudo para serem executados com sucesso. Isso se deve ao fato de que reiniciar um sistema é uma tarefa administrativa, e em sistemas multiusuários ou servidores executando processos críticos, essa ação pode ser considerada disruptiva.

Este artigo detalha alguns dos métodos disponíveis para auxiliar você nas atividades de reinicialização e desligamento no Linux.

Método via Interface Gráfica (GUI)

Se você está usando um ambiente de desktop Linux, como Gnome, KDE, Mate ou XFCE, encontrará um botão de energia no menu do sistema ou aplicativo. Este botão oferece opções como logout, reinicialização, hibernação ou desligamento. As opções exatas podem variar dependendo da distribuição, ambiente de desktop e versão do sistema operacional em uso. No entanto, você sempre encontrará configurações relacionadas à energia nos menus disponíveis para alterar o estado de energia do seu sistema.

Por exemplo, no meu desktop Ubuntu Mate, a opção “Desligar” pode ser encontrada no menu de energia, localizado no canto superior direito da tela.

Ao selecionar “Desligar…”, uma caixa de diálogo é exibida, com opções como Suspender, Reiniciar, Cancelar e Desligar. Você pode prosseguir com a reinicialização ou desligamento clicando no botão correspondente, ou cancelar e retornar ao seu ambiente de trabalho.

Embora a interface gráfica e as opções possam variar um pouco entre as distribuições e ambientes de desktop, você sempre encontrará uma maneira de alterar o estado de energia do sistema. Com a GUI, o processo geralmente envolve apenas alguns cliques no menu de energia.

Utilizando o Comando systemctl

Em sistemas Linux que utilizam o systemd como sistema init, você pode empregar o comando systemctl para reiniciar sua máquina.

$ sudo systemctl start reboot.target

Ou, para simplificar, utilize systemctl diretamente com a opção desejada:

$ sudo systemctl reboot

Para realizar um desligamento, o comando systemctl é:

$ sudo systemctl shutdown

Para parar o sistema, utilize:

$ sudo systemctl halt

Empregando o Comando shutdown

O comando shutdown pode ser usado tanto para desligar quanto para reiniciar um sistema Linux. Para reiniciar o sistema imediatamente, use:

$ sudo shutdown -r now

Para desligar o sistema sem espera, use os sinalizadores -h ou -P:

$ sudo shutdown -P now

É possível adicionar um atraso ao comando shutdown para reiniciar/desligar o sistema após um período específico. Veja como:

$ sudo shutdown -r 10

Para interromper o sistema sem solicitar que o hardware desligue, utilize o sinalizador -H:

$ sudo shutdown -H now

Se você executar o comando shutdown sem argumentos, o desligamento será agendado para ocorrer em um minuto. Para programar o desligamento para um horário específico, utilize:

$ sudo shutdown 22:30

Em muitos casos, enquanto um sistema está inativo, uma mensagem é enviada para o console dos usuários logados. Para adicionar sua mensagem personalizada a esta transmissão, especifique uma mensagem junto com o comando shutdown:

$ sudo shutdown 23:00 "Desligando o sistema para manutenção... salve seu trabalho"

Para cancelar um desligamento agendado, use o sinalizador -c:

$ sudo shutdown -c

Em alguns sistemas, o comando shutdown invoca o systemctl no backend para realizar a operação de reinicialização ou desligamento desejada.

Usando o Comando reboot

Para reiniciar o sistema de forma convencional, use o comando reboot (que pode exigir o uso do sudo):

$ sudo reboot

Para desligar o sistema com o comando reboot, use o sinalizador -p:

$ sudo reboot -p

Para forçar uma reinicialização (em sistemas que não respondem ao comando de reinicialização normal), você pode experimentar o sinalizador -f:

$ sudo reboot -f

Empregando o Comando halt

Para parar um sistema, utilize o comando halt:

$ sudo halt

Utilizando o Comando poweroff

Para desligar um sistema, você tem a opção de usar o comando poweroff:

$ sudo poweroff

O Comando init

Em sistemas que não utilizam o systemd, o comando init (ou telinit) oferece opções para alterar o nível de execução do sistema. Para reiniciar um sistema utilizando o init, use:

$ sudo init 6

De forma semelhante, para parar o sistema, o comando init a ser usado é:

$ sudo init 0

Invocar um nível de execução específico utilizando init faz com que o processo de inicialização do sistema execute uma série de scripts de inicialização em uma ordem determinada para garantir que o sistema atinja o nível de execução desejado. O nível de execução 6 é usado para reiniciar o sistema, enquanto o nível de execução 0 é para parar o sistema.

O Botão de Energia

Em sistemas Linux executados em desktops ou laptops, pressionar o botão de energia normalmente suspende ou desliga o sistema, enviando um sinal de desligamento. Esta opção pode ser configurada nas configurações de energia do sistema. Embora deva ser usado idealmente como último recurso, se os comandos normais não funcionarem.

Em servidores remotos rodando Linux, o botão de energia geralmente desliga o sistema. Entretanto, aqueles localizados em data centers remotos possuem a opção adicional de serem reiniciados ou desligados através de ferramentas de gerenciamento remoto oferecidas pelos respectivos fornecedores de servidores, que utilizam interfaces CLI/GUI.

A Combinação Alt + SysRq

Para um sistema congelado que não responde, é difícil trazê-lo para um estado de reinicialização ou desligamento. Quando não houver outra opção e como último recurso, tente pressionar Alt + PrintScreen + uma sequência de teclas para reiniciar o sistema instantaneamente. Embora não seja uma opção preferida ou recomendada, pode ser útil em situações extremas.

Lembre-se sempre que existe a possibilidade de perda e corrupção de dados ao usar este método, como qualquer outra opção de reinicialização ou desligamento forçado não graciosa. Adote as melhores práticas para backups e redundância e tenha cuidado ao usar esta opção.

Para que esta opção funcione, ela deve estar habilitada no kernel do Linux. Você pode verificar isso usando o seguinte comando:

$ cat /proc/sys/kernel/sysrq

Uma saída de 1 indica que a funcionalidade está totalmente habilitada, enquanto um número maior indica que está parcialmente habilitada com algumas funcionalidades. Para habilitá-la explicitamente, use:

$ sudo echo "1" > /proc/sys/kernel/sysrq

Para reiniciar um sistema usando este método, mantenha pressionado Alt + SysRq (PrintScreen) e pressione na sequência as seguintes teclas, com um pequeno intervalo entre cada tecla:

R E I S U B

Ou, para desligar, pressione O em vez de B no final:

R E I S U O

O significado de cada tecla é:

  • R: Muda o teclado do modo raw para XLATE
  • E: Envia o sinal SIGTERM para todos os processos, exceto o init
  • I: Envia o sinal SIGKILL para todos os processos, exceto o init
  • S: Sincroniza todos os sistemas de arquivos montados
  • U: Remonta todos os sistemas de arquivos montados como somente leitura

E, por fim, temos B ou O, que significam:

  • B: Reinicia o sistema imediatamente, sem desmontar partições ou sincronizar

OU

  • O: Desliga imediatamente o sistema, sem desmontar partições ou sincronizar

Considerações Finais

Apresentamos neste artigo diversas maneiras de reiniciar ou desligar um sistema Linux, que vão desde interfaces gráficas simplificadas até comandos de terminal mais complexos. Essas opções podem facilitar suas tarefas e até mesmo automatizar processos. Em situações onde o sistema travar, abordamos formas forçadas de realizar a reinicialização ou desligamento, lembrando que esta não é a melhor opção e deve ser utilizada apenas em raras ocasiões.

Tome cuidado ao utilizar os comandos apresentados neste artigo, pois eles afetam o estado do sistema e podem impactar diversos usuários e serviços, principalmente em servidores corporativos. Consulte as páginas man dos comandos sugeridos para obter mais detalhes sobre seu funcionamento e todas as opções que eles oferecem.

Aprenda como configurar o WAS para evitar a solicitação de senha durante o desligamento.