Use o rtcwake para despertar com sua música preferida

O rtcwake pode ser usado para suspender ou hibernar o seu sistema por um período pré-determinado (por você). Ao “despertar”, o sistema pode tocar uma música ou qualquer outro arquivo de áudio à sua escolha.
É possível adicionar uma tarefa ou um script para ser executado também, no wake up — basta alterar um dos exemplos para fazer o que você achar melhor.
rtcwake exemplo de uso
Para suspender o sistema para a memória, por 30 minutos e depois voltar tocando uma música, use a seguinte linha de comando:

sudo rtcwake --date 30min --mode mem; mpg123 ~/Música/Tribo\ de\ Jah\ -\ Suzy\ Wong.mp3 

Se você prefere hibernar, use o seguinte exemplo:

sudo rtcwake --date 30min --mode disk; mpg123 ~/Música/Tribo\ de\ Jah\ -\ Suzy\ Wong.mp3 

Leia mais sobre as diferenças entre suspender, hibernar e suspender-híbrido.
Você pode também substituir o aplicativo mpg123 pelo seu player favorito.
… e não esqueça de trocar o caminho e o nome da música do exemplo por uma que esteja presente no seu sistema.

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.

Desabilite as opções de suspensão e hibernação no Debian

As funções de suspensão, hibernação e suspensão híbrida nem sempre funcionam da maneira como se espera.
Por isto, às vezes, pode ser interessante desativar estes recursos.
Há várias razões para estes itens não funcionarem adequadamente no Debian, ou em qualquer outra distro Linux. A principal razão é hardware incompatível.
Os procedimentos descritos nesta página são voltados especificamente para o Debian 8 Jessie Stable, em função do seu suporte ao systemd.
Como este ainda é um trabalho em progresso, não posso garantir que funcione adequadamente no Debian 9 Stretch Testing.
Sugiro a leitura sobre Suspensão, Hibernação e Suspensão-híbrida, caso tenha dúvidas sobre estes recursos.
Há, ainda algumas formas de testar se seu hardware tem suporte a qualquer um destes recursos. Para saber, leia Como testar se seu hardware tem suporte a suspensão/hibernação.

como desabilitar suspensão e hibernação via systemd

Se você quiser impedir que seu sistema tente hibernar, use o systemd para desabilitar a função.
A seguinte linha de comando, deve resolver o assunto:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Se quiser desfazer o procedimento, realize o seguinte comando:

sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

Para desabilitar a suspensão quando a tampa do notebook for fechada, ajuste os seguintes parâmetros no arquivo de configuração /etc/systemd/logind.conf:

[Login]
HandleLidSwitch=ignore
HandleLidSwitchDocked=ignore

Em seguida rode o comando systemctl, da seguinte forma:

systemctl restart systemd-logind.service

ou reinicie a máquina.

Referências

https://wiki.debian.org/Suspend

Como testar se seu hardware tem suporte a hibernação, suspensão ou suspensão-híbrida

A hibernação é um recurso que pode causar perda de dados em sistemas de hardware que não estejam preparados para ele ou que não sigam padrões abertos.
Felizmente, o Ubuntu e o Debian dispõem de ferramentas para testar a compatibilidade do seu hardware com os utilitários que aplicam estes recursos.
Não esqueça de conferir, ao final do texto, alguns links para artigos sobre hibernação, suspensão e suspensão-híbrida — há coisas interessantes, lá! 😉
ubuntu desligar hibernar
Um dos utilitários que fazem o teste é o pm-is-supported e faz parte do pacote de ferramentas pm-utils.
Por exemplo, para testar se seu sistema tem suporte a hibernação, use o comando assim:

pm-is-supported --hibernate

Não se preocupe se não vir resultado algum.
O fato é que o utilitário foi feito para ser usado dentro de scripts.
Para montar um script bem simples de testes, abra um terminal e crie um arquivo com o nome hibteste.sh (claro que você pode usar outro nome… ).
A seguir cole o seguinte texto dentro dele:

#!/bin/bash

if pm-is-supported --hibernate;
        then
        echo 'sim';
        else
        echo 'não';
fi

Em seguida, torne o arquivo executável e rode-o:

chmod +x hibteste.sh
./hibteste.sh

Agora, sim. Você não vai ficar sem resposta.
script pm-is-supported
O utilitário pm-is-supported pode ser usado com outros parâmetros:

  1. --suspend — para verificar se há suporte a suspensão do sistema.
  2. --suspend-hybrid — para verificar se há suporte a suspensão-híbrida do sistema.

Ele vai retornar 0 (para recurso disponível) ou 1 (para recurso não disponível).
Este artigo é um spin-off do Como habilitar a opção de hibernação no Ubuntu, onde o teste é necessário.

Referências

  1. Quais as diferenças entre Suspender, Hibernar e Suspender-híbrido? — https://elias.praciano.com/2014/09/suspender-ou-hibernar/.
  2. Como configurar o laptop para hibernar ou suspender, quando fechar a tampa? — https://elias.praciano.com/2015/11/como-configurar-o-notebook-para-suspender-ou-hibernar-quando-fechar-a-tampa-no-debian-e-ubuntu/.
  3. Como ativar a opção Hibernar no menu do Ubuntu? — https://elias.praciano.com/2016/04/como-habilitar-a-opcao-de-hibernacao-no-ubuntu/.
  4. Como ativar a opção suspend-sedation? — https://elias.praciano.com/2015/11/como-configurar-o-sistema-para-o-estado-suspend-sedation/.

Como habilitar a opção de hibernação no Ubuntu

A opção de hibernação no menu principal do Ubuntu e no menu de desligamento é desativada para evitar incompatibilidades com alguns hardwares específicos.
Se o seu hardware segue padrões de mercado e é amigável com sistemas operacionais abertos, ele provavelmente suporta bem a função de hibernação e, portanto, nada mais justo do que você ter acesso a ela, a partir dos menus.
Ubuntu menu suspend
Se você quiser entender melhor as diferenças entre suspender, hibernar e suspender-híbrido, leia este artigo.
Este texto se baseia em uma máquina Ubuntu 16.04 LTS Xenial Xerus, as instruções foram testadas em uma máquina Ubuntu 14.04 LTS e também no Xubuntu 16.04 LTS — com sucesso.
Se você ainda tiver algum problema, relate-o nos comentários.
Como forma de complementar este post, sugiro a leitura de Como configurar o notebook para suspender ou hibernar quando fechar a tampa no Debian e Ubuntu.
Aqui, vou abordar apenas a ativação da opção “Hibernar” nos menus de desligamento do Ubuntu.
Antes de partir para a solução, sugiro que você verifique se não tem problemas com hibernação no seu hardware.
Isto é muito fácil de se fazer.
Abra um terminal (Ctrl + Alt + T) e digite o comando abaixo, seguido de Enter:

sudo pm-hibernate

Aguarde o processo de hibernação se completar e ligue novamente a máquina.
Se você preferir, o artigo Como checar o suporte a hibernação, suspensão e suspensão híbrida, pode ajudar a verificar sem necessidade de desligar nada.
Se você teve problemas durante o processo, deve buscar formas de resolvê-los, antes de prosseguir.
Problemas na hibernação podem estar sendo causados pelo tamanho inadequado da partição de swap, no seu sistema. Leia mais sobre isto aqui.


Screenshot from 2016-04-28 19-43-11
Se tudo correu bem durante o teste, volte ao terminal para aplicar a solução relativa ao menu.
Como administrador do sistema abra o arquivo “/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla”.
Se você não conseguir encontrar este arquivo, tente achá-lo em “var/lib/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla”.
Cole o texto que segue, dentro dele:

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes

Salve e feche o arquivo.
Se achar mais confortável, você pode reiniciar o seu computador — mas encerrar a sessão do Ubuntu e se autenticar de novo já é o suficiente.
Note que a opção Hibernar, agora está lá, no menu.
hibernate-in-menu-ubuntu
Ao pressionar o botão de desligar do laptop, a opção Hibernar também se fará presente.
ubuntu desligar hibernar
Referências:

https://help.ubuntu.com/16.04/ubuntu-help/power-hibernate.html.
http://ubuntuhandbook.org/index.php/2014/04/enable-hibernate-ubuntu-14-04/.