Como suspender da linha de comando que a tela está bloqueada?

9

Estou usando o Xubuntu 12.04. No Power Manager, verifiquei Estendido - > Bloqueio de tela quando vai para suspender / hibernar. Se eu optar por suspender no menu principal / Painel 1, a tela será bloqueada. No entanto, se eu usar dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend (consulte Como posso suspender / hibernar da linha de comando? ; eu uso este comando através de um atalho de teclado), a tela não está bloqueada. Como posso (1) suspender o sistema (2) ter a tela bloqueada ao mesmo tempo (3) não requerem direitos de root para fazer isso [desde que eu gostaria que o comando seja atribuído a um atalho de teclado].

    
por Marius Hofert 18.05.2012 / 00:54

4 respostas

10

Você pode fazer isso usando o seguinte:

gnome-screensaver-command --lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Em um atalho de teclado, você precisa colocar sh -c "<command>" substituindo <command> pelo comando acima, como:

sh -c "gnome-screensaver-command --lock && dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend"

Se o comando acima não funcionar, você também pode tentar usar um arquivo de script de shell (por exemplo, suspend_lockscreen.sh ). Primeiro crie o arquivo, chame os seguintes comandos em um console:

cd ~
echo "gnome-screensaver-command --lock" >> suspend_lockscreen.sh
echo "dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend" >> suspend_lockscreen.sh
chmod +x suspend_lockscreen.sh

Isso criará um arquivo chamado suspend_lockscreen.sh na pasta inicial do usuário. Então, no atalho, basta ligar: ./suspend_lockscreen.sh .

Observação: gnome-screensaver-command pode ser substituído por xscreensaver-command , conforme apontado em um comentário.

    
por amfcosta 18.05.2012 / 01:17
2

Eu estava usando o comando dbus do amfcosta para suspender da linha de comando. No entanto, no currículo, a eth0 estava inativa.

Encontrei então este comando:

xfce4-session-logout --suspend

Este comando desativa a rede, suspende e reabilita a rede quando o computador é ativado.

xfce4-session-logout é específico do xfce, mas outros ambientes de área de trabalho podem ter comandos *-session-logout semelhantes.

Estou executando o Xubuntu 14.04.

Atualização: Isso pode não afetar os outros, mas acontece que no meu Asus EEE 900, a conexão ethernet com fio só funciona todas as outras vezes que o EEE acorda. Isso é, obviamente, muito irritante e significa que a suspensão não pode ser usada.

    
por mpb 12.05.2014 / 20:48
0

Com o Ubuntu 15.10, isso também funciona:

gnome-screensaver-command --lock && systemctl -i suspend
    
por iGEL 05.02.2016 / 22:02
0

Nota: o xscreensaver-command só funciona com a opção -lock (com 1 hífen, não um duplo como com o gnome-screensaver-command ). No entanto, o comando só funciona quando o protetor de tela está sendo executado, então não é muito útil.

    
por LinuxRev 26.05.2017 / 14:35