Precisa começar de novo? Este guia detalha como reiniciar ou desligar seu computador Linux ou macOS de maneira controlada e segura, diretamente da linha de comando.
Desligando o Sistema
Em certas situações, a reinicialização ou o desligamento total do sistema são necessários. Se você estiver trabalhando em um servidor sem interface gráfica ou através de uma sessão SSH remota, a linha de comando é sua principal ferramenta. Tanto o Linux quanto sistemas operacionais similares ao Unix, como o macOS, oferecem comandos variados para desligar ou reiniciar o sistema diretamente pelo terminal.
Os comandos disponíveis incluem:
shutdown
reboot
halt
poweroff
Analisar as páginas de manual desses comandos pode ser confuso. Dependendo das opções que você utilizar, todos eles podem realizar desligamentos, reinicializações ou interrupções do sistema. As páginas do manual de `reboot`, `halt` e `poweroff` compartilham informações praticamente idênticas.
Entendendo o Mecanismo Subjacente
A razão por trás disso reside no sistema de inicialização systemd, que substituiu o antigo sistema init do System V. O Fedora começou a adotar o systemd em 2011, e desde então, muitas outras distribuições o seguiram. Debian e Ubuntu adotaram o systemd em 2015.
Em distribuições que usam systemd, os comandos `shutdown`, `reboot`, `halt` e `poweroff` são, na verdade, atalhos que direcionam para o comando `systemctl`. A manutenção desses comandos visa garantir compatibilidade com as distribuições que usam o init do System V. Isso garante que scripts (e administradores mais tradicionais) não enfrentem problemas ao se depararem com sistemas que utilizam systemd.
Utilizando o Comando Shutdown
Desligar ou reiniciar um sistema multiusuário exige um planejamento prévio. É necessário decidir o momento do desligamento ou reinicialização e notificar os outros usuários do sistema. Se você for o único usuário, o processo é mais simples.
Para executar qualquer um desses comandos, é preciso estar no grupo `sudo`, ou seja, ter permissões de superusuário e poder utilizar o comando `sudo`. Se a ação for imediata e não afetar outros usuários, o uso de `sudo` não é necessário. Caso o comando seja rejeitado, tente novamente utilizando `sudo`.
Por padrão, o comando `shutdown` garante que todos os processos sejam interrompidos corretamente, que todos os sistemas de arquivos sejam sincronizados e que todas as atividades da CPU sejam interrompidas. Este é o estado de “parada”. Em seguida, o comando envia uma instrução ao hardware para cortar a energia, o que leva ao desligamento total.
É comum incluir parâmetros no comando `shutdown`, como um horário e uma mensagem para avisar os usuários do sistema sobre o desligamento. Vamos agendar um desligamento para daqui a 15 minutos. Insira `shutdown`, um espaço, `+15`, um espaço e a mensagem:
shutdown +15 Desligamento em 15 minutos!
O termo `+15` representa 15 minutos a partir de agora. O sinal `+` é opcional; você poderia digitar apenas `15`.
Você receberá uma confirmação do agendamento do desligamento e o horário em que ocorrerá. Os usuários conectados também receberão a mensagem que você definiu.
Para cancelar um desligamento, use a opção `-c` (cancelar):
shutdown -c
Embora você não receba uma notificação visual de cancelamento, seus usuários conectados serão notificados.
Se você não especificar um horário, o desligamento será agendado para um minuto. Observe que você não pode enviar uma mensagem para os usuários se não especificar um horário.
shutdown
Se você não puder esperar nem um minuto, use `now` como horário. Isso tem o mesmo efeito que usar `+0`.
O horário também pode ser definido, por exemplo, `23:00`. Deve seguir o formato HH:MM no formato de 24 horas. Cinco minutos antes do sistema desligar, novos logins são impedidos.
Como vimos, a ação padrão do `shutdown` leva o computador ao estado de parada e, em seguida, ao desligamento. Podemos alterar isso passando outras opções.
A opção `-H` (halt) faz o computador parar, mas não solicita que o hardware seja desligado.
A opção `-P` (poweroff) é a ação padrão: o computador para e desliga.
A opção `-r` (reboot) faz o computador parar e reiniciar.
A opção `-h` (halt and power off) é igual a `-P`. Se você usar `-h` e `-H`, a opção `-H` terá prioridade.
A opção `-c` (cancel) cancela qualquer desligamento, parada ou reinicialização agendada.
Aqui está um exemplo de agendamento de reinicialização:
shutdown -r 08:20 Sistema reiniciando às 08:20
Os Comandos Reboot, Halt e Poweroff
Esses comandos executam a ação indicada por seu nome. No entanto, todos eles podem receber opções para executar reinicialização, parada ou desligamento. Para evitar confusão, é melhor usá-los diretamente para o propósito indicado.
Para reiniciar o sistema agora, use `reboot`. Para desligar o sistema, use `poweroff`, e para parar o sistema, use `halt`.
reboot
halt
poweroff
Esses comandos têm efeito imediato. Se um deles for rejeitado, use `sudo` antes dele. No entanto, a recusa geralmente indica a presença de outros usuários conectados ao sistema que você está prestes a desligar.
Qual Comando Usar?
Em ambientes com vários usuários, o comando `shutdown` é mais apropriado, pois permite maior controle. Agendar desligamentos e reinicializações e avisar os usuários com mensagens é muito útil nesses casos. Para um computador de usuário único, os comandos `reboot` e `poweroff` geralmente serão suficientes.