Use o systemctl para hibernar, desligar, reiniciar etc.

Em sistemas Linux, com o systemd, é possível usar o comando systemctl para executar diversas tarefas da administração do sistema.
linux, suspender, desligar, reiniciar
Neste post, vamos falar das que envolvem

Para se aprofundar um pouco mais em algum assunto abordado, clique nos links do texto.

O que é o systemctl?

É um utilitário que controla o systemd e o service manager.
De acordo com o manual, pode ser usado para introspectar e controlar o estado do systemd e do gestor de serviços do sistema.
Como foi dito, no primeiro parágrafo, pode ser usado para realizar várias atividades administrativas mas, neste post, vamos nos concentrar naquelas 5 que foram enumeradas acima.
Se quiser, clique na tag systemctl, para saber mais sobre ele.

Exemplos de uso do systemctl

Abra um terminal, para experimentar algumas funções do systemctl.
Se deseja desligar o sistema, use-o assim:

systemctl poweroff

Pode ser usado, portanto, como substituto do comando shutdown.
As opções do systemctl podem ser vistas com ‘–help’ ou usando a tecla Tab, para autocompletar.
Se vocẽ deseja “parar” o sistema, use a opção ‘halt’:

systemctl halt

Você provavelmente terá que desligar, pressionando o botão físico, após este comando.
Use ‘reboot’, para reiniciar:

systemctl reboot

ou

systemctl kexec

Para tornar o processo mais silencioso, use ‘-q’, ‘–quiet’ ou ‘–no-wall’:

systemctl --no-wall reboot

Se tiver suporte a EFI boot, é possível pedir ao firmware do seu sistema para entrar no menu de setup, no próximo boot:

systemctl --firmware-setup reboot 

systemctl firmware boot menu
Se quiser estabelecer um tempo, para esperar antes de executar o comando, use o sleep (em segundos):

sleep 60; systemctl poweroff

Tenha cuidado com a linha de comando, acima. Se você se arrepender e teclar ‘Ctrl+C’, durante a execução do sleep, irá interrompê-lo e disparar o segundo comando.
Neste sentido, o comando shutdown pode ser mais seguro.
Para hibernar o sistema:

systemctl hibernate

Para suspender:

systemctl sleep

Para suspender/hibernar-híbrido:

systemctl hybrid-sleep

Se quiser saber as diferenças entre estes 3 últimos comandos, leia este texto.

Suspender ou hibernar?

Na aparência, os dois procedimentos são idênticos, em qualquer sistema operacional. Mas os mecanismos são bem diferentes.
A suspensão interrompe a operação de todas as aplicações e grava o estado atual do sistema na memória RAM.

Em seguida, a máquina entra no modo de economia de energia (low power mode).
captura de tela gerenciamento de energia no xubuntu xfce

Neste modo, o sistema ainda precisa de algum suprimento de energia — apenas para manter os dados na memória RAM
Você pode perder os dados em que estava trabalhando, se deixar o notebook muito tempo desconectado da rede elétrica, dependendo apenas da carga da bateria (se esta se exaurir).
Por sorte, a maioria dos sistema atuais, desligam o notebook ou o colocam para hibernar, quando a carga da bateria chega a um nível crítico.
É possível tirar a máquina do estado de suspensão com vários “gatilhos” — um toque no teclado, por exemplo.
Embora você possa usar os botões ou teclas apropriados para isto, se você estiver acessando um sistema Linux de uma máquina remota, pode precisar executar o comando no terminal, como irei explicar mais à frente.

Como funciona a hibernação

icone do disco rígido - salvar
Atualmente, uma das principais funções da memória SWAP, no Linux, está ligada à hibernação.
Uma vez que o sistema já tem um gerenciamento de memória incrivelmente eficiente, O Linux quase nunca usa o SWAP.

Saiba como obter um melhor desempenho do seu sistema, reduzindo o uso do SWAP


O processo de hibernação move o conteúdo da memória RAM pro SWAP.
Por isto, ao criar um arquivo ou partição SWAP, no Linux, você deve usar um tamanho equivalente à quantidade total de memória RAM no seu sistema ou maior.
Depois de copiar o estado da memória pro SWAP, o processo de hibernação diz ao bootloader para iniciar diretamente no kernel apropriado (quando a máquina for ligada novamente), mais tarde… e desliga a máquina.
No estado de hibernação, o equipamento não precisa de energia elétrica e não consome a carga da bateria.
Ao ligar novamente a máquina, o kernel irá recarregar todo o conteúdo do SWAP, devolvendo o sistema ao ponto em que se encontrava quando foi hibernado.
O comando para hibernar uma máquina, no Linux é:

pm-hibernate

ou


systemctl suspend

Cuidado! O systemctl não pede confirmação.
Se quiser, é possível usar uma variante, que dispara a suspensão híbrida:


pm-suspend-hybrid

ou


systemctl hybrid-sleep

A suspensão-híbrida, no Linux, é um processo no qual o sistema faz tudo o que precisa para hibernar mas, em vez disto, executa a suspensão.
Com este método, o seu computador pode “acordar” mais rápido do que se tivesse sido hibernado normalmente, desde que a bateria não tenha se exaurido.
E, mesmo que a carga da bateria acabe, você não corre o risco de perda de dados.

Devo configurar o SWAP no SSD?

Esta discussão é boa e os argumentos mudam em função dos avanços tecnológicos — mas, para manter a fidelidade ao tópico vou respondê-la parcialmente.
Se a pergunta for “devo configurar o SWAP no SSD para erguer o sistema mais rápido após a hibernação?”
Leve em consideração a menor duração das unidades sólidas, comparadas às unidades magnéticas (discos rígidos).
Embora o tempo de vida útil dos drives SSD tenda a aumentar nos próximos anos, ainda não é bom usá-las em atividades que façam gravações intensas.
Se você tem mais memória RAM do que precisa e só vai usar o SWAP para hibernação do sistema, a idéia de ter o arquivo ou partição de troca no SSD é boa — uma vez que não representa grande desgaste para a unidade.
O assunto é melhor abordado no post Perguntas e respostas sobre SWAP.

LEIA MAIS

5 exemplos do comando shutdown no Linux

O comando shutdown, pra ser curto, desliga o seu sistema. Mas ele pode fazer isto de maneiras “diferenciadas”, se você conhecer algumas de suas opções.
Uma das minhas formas preferidas de usar o comando shutdown é a que permite programar o desligamento ou o reboot do meu sistema.
Em alguns casos, um administrador precisa programar um reinício — na maioria das vezes para aplicar certos updates no sistema. É coisa rara. Poucas atualizações no Linux precisam que a máquina seja reiniciada. Na maioria das vezes, apenas o serviço ou o daemon a que ela se refere é que precisa ser reiniciado.
Na maioria dos casos, as pessoas desejam programar o desligamento, por que vão sair e não querem deixar a máquina ligada durante sua ausência – mas também não querem interromper um download ou alguma outra tarefa que esteja sendo executada. A solução para isto é programar o shutdown para ser executado alguns minutos após o término previsto da tarefa em questão.

O que acontece ao executar o comando shutdown

Ao rodar o comando shutdown, o sistema é desligado de forma segura e todos os usuários (no terminal) são avisados. Além disso, poucos minutos antes de desligar, o sistema não recebe mais conexões novas.
Sim. Você precisa ter privilégios administrativos para desligar um servidor. Ainda mais, se quiser fazer isto remotamente.

Exemplos de uso do comando shutdown no Linux

Veja como reiniciar a máquina, com o comando shutdown:

sudo shutdown -r now

ou para desligar, mesmo:

sudo shutdown -h now

Você pode apenas avisar os usuários que o sistema será desligado e impedir novas autenticações no sistema, com a opção code>-k:

sudo shutdown -k now

Com o uso de -k o sistema não será desligado de verdade.
Se você quiser, pode programar o desligamento ou reinício do sistema. No exemplo, a seguir, vou programar a máquina para desligar em 30 minutos:

sudo shutdown -h 30

Esta é a mensagem que outros usuários irão receber em seus terminais:

Espalhar mensagem de justincase@JustInCase-Solaris-8
	(/dev/pts/5) em 1:04 ...

The system is going down for halt in 30 minutes!

Neste caso, o shutdown pode ser cancelado com o pressionamento das teclas Ctrl + C.
Um outro usuário, com privilégios administrativos, também pode cancelar o processo, de seu terminal, com o seguinte comando:

sudo shutdown -c

Para enviar uma mensagem aos usuários afetados pelo desligamento, use o comando desta forma:

sudo shutdown -r 30 "O sistema será reiniciado para aplicação de atualizações. Aproveite pra tomar um café."

Este seria o resultado de tal comando:

Espalhar mensagem de justincase@JustInCase-Solaris-8
	(/dev/pts/5) em 1:13 ...

The system is going down for reboot in 30 minutes!
O sistema será reiniciado para aplicação de atualizações. Aproveite pra tomar um café.

Use o shutdown para fazer duelos

Quando o chefe não estiver por perto, a brincadeira consiste em acessar a máquina do outro colega (via telnet ou SSH) e aplicar-lhe um shutdown antes que ele(a) o faça com você. Quem for mais rápido, vence.
Divirta-se!