Como reiniciar ou desligar o Linux usando a linha de comando

Quer começar de novo? Este tutorial mostrará como reinicializar ou desligar seu computador Linux ou macOS de forma limpa e segura a partir da linha de comando.

Estamos indo para baixo

Às vezes, você só precisa reiniciar ou desligar totalmente. Se você estiver trabalhando em um servidor sem interface gráfica do usuário ou em uma sessão SSH com um computador remoto, a linha de comando é sua única opção. Linux e sistemas semelhantes ao Unix, como o macOS, fornecem vários comandos para desligar ou reinicializar o sistema diretamente da linha de comando.

Os comandos que você pode usar são:

desligar
reinício
parar
desligar

Olhar as páginas do manual para esses comandos pode ser confuso. Dependendo das opções de linha de comando que você escolher, todos esses comandos podem executar desligamentos, reinicializa e o sistema é interrompido. Na verdade, as páginas do manual para reboot, halt e poweroff contêm exatamente a mesma informação.

O que está por trás disso?

A resposta está no systemd bootstrap sistema que substituiu o venerável sistema init do System V. No mundo Linux, o Fedora começou a usar o systemd em 2011. Desde então, ele foi adotado por muitas distribuições. O Debian e o Ubuntu foram trocados pelo systemd em 2015.

Em distribuições baseadas em systemd, os comandos shutdown, reboot, halt e poweroff são efetivamente atalhos que apontam para o comando systemctl. A retenção desses comandos fornece um grau de compatibilidade com as distribuições baseadas em init do System V. Significa que os scripts de shell (e administradores de sistema do System V hard-core) não desmaiam se forem movidos para um computador com uma distribuição do systemd em execução.

Usando desligamento

Desligar ou reinicializar um sistema multiusuário significa que você deve planejar com antecedência. Você precisa decidir quando irá desligar ou reiniciar, e avisar os outros usuários do sistema que o desligamento está chegando, e quando. Se for o seu próprio computador e você for o único que o usa, a vida é muito mais simples.

Para executar qualquer um desses comandos, você precisa estar no grupo sudo. Ou seja, você deve ter permissões de superusuário e ser capaz de usar o comando sudo. Se o comando que você emitiu tiver efeito imediato e não afetará outros usuários conectados, você não precisará usar o sudo. Se você tentar usar um desses comandos e o comando for recusado, tente novamente com sudo.

Por padrão, o comando shutdown garante que todos os processos sejam interrompidos de forma limpa, todos os sistemas de arquivos sejam sincronizados e todas as atividades da CPU tenham cessado. Este é o estado de ‘parada’. Em seguida, ele envia uma mensagem ao hardware para cortar a energia. Este, é claro, é o estado de desligamento ou “desligamento”.

É comum passar alguns parâmetros de desligamento, como uma string de horário e uma mensagem que será enviada aos usuários logados para avisá-los do desligamento. Vamos agendar um desligamento para 15 minutos a partir de agora. Digite shutdown, um espaço, +15, um espaço e a mensagem a ser enviada aos usuários.

shutdown +15 Shutting down in 15 minutes!

A string de tempo que usamos foi +15, representando 15 minutos a partir de agora. O + é opcional. Poderíamos ter digitado 15.

Recebemos uma resposta que confirma que um desligamento está agendado e quando ocorrerá. Os usuários logados receberão a mensagem que fornecemos.

Para cancelar um desligamento, use a opção -c (cancelar).

shutdown -c

Embora você não receba nenhuma notificação de que seu desligamento foi cancelado, seus usuários conectados são notificados.

Se você não fornecer uma sequência de tempo, o desligamento será agendado para daqui a um minuto. Observe que você não pode enviar uma mensagem aos usuários conectados se não especificar uma sequência de tempo.

shutdown

Se você não puder esperar nem um minuto, pode usar agora como a sequência de tempo e o desligamento tem efeito imediato. Usar agora é como usar +0.

A string de hora pode ser uma hora definida, como 23:00. Deve seguir o formato de HH: MM e deve estar no formato de 24 horas. Cinco minutos antes de o sistema cair, novos logins são impedidos.

Sabemos que a ação padrão de desligamento faz com que o computador vá para o estado de parada e, em seguida, para o estado de desligado. Podemos substituir esse comportamento passando outras opções de linha de comando para ele.

A opção -H (halt) fará com que o computador pare, mas não solicitará que o hardware seja desligado.
O -P (poweroff) é a ação padrão. O computador é colocado no estado de parada e, em seguida, desligado.
A opção -r (reinicializar) fará com que o computador pare e o reinicie.
A opção -h (interromper e desligar) é igual a -P. Se você usar -h e -H juntos, a opção -H terá prioridade.
A opção -c (cancelar) cancelará qualquer desligamento, parada ou reinicialização agendada.

Aqui está um exemplo em que agendamos uma reinicialização.

shutdown -r 08:20 System rebooting at 08:20

Os comandos de reinicialização, parada e desligamento

Esses comandos executam a ação que seu nome sugere. No entanto, cada um deles aceitará opções de linha de comando para fazer com que qualquer um deles execute uma reinicialização, uma parada ou um desligamento. Mas por que confundir as coisas? Esses comandos são mais bem usados ​​pelo valor de face.

Se você quiser reiniciar agora, use reboot. Se quiser desligar agora, use poweroff, e se quiser parar o sistema agora, use halt.

reboot

halt

poweroff

Esses comandos têm efeito imediato. Se algum desses comandos for recusado, preceda-os com sudo. Mas esteja ciente de que a recusa geralmente ocorre porque há outros usuários logados no sistema que você está prestes a colocar offline.

Qual comando é certo para mim?

Em ambientes multiusuário, o desligamento para executar essas ações oferece mais controle. A facilidade de agendar desligamentos e reinicializações e alertar os usuários com uma mensagem de transmissão será inestimável nesses casos. Para um computador de usuário único, a reinicialização e o desligamento provavelmente atenderão às suas necessidades.