Como suspender a máquina da linha de comando no LXDE

3

Estou usando o Lubuntu 14.04 com o Openbox 3.5.2.
Existem one-liners para bloquear a tela: dm-tool lock
e para abrir o menu de sair: lxsession-default quit

No entanto, se eu precisar executar uma suspensão, preciso abrir o menu mencionado primeiro,
em seguida, navegue até a opção 'Suspender' e pressione Enter.

Pode ser feito com um único comando?

    
por vucalur 23.10.2014 / 15:29

3 respostas

4

Você pode suspender do terminal com:

sudo pm-suspend

Em alguns casos, chamar pm-suspend diretamente pode causar problemas com drivers de wi-fi e outros programas. Além disso, a página man do pm-suspend diz que, embora seja correto chamá-lo a partir da linha de comando, ele normalmente é chamado pelo gerenciador de energia do desktop.

A página man adiciona que quando chamado a partir da linha de comando, "it is not guarenteed that all of your programs in your desktop session keep working as expected."

A maioria dos problemas parece ser de serviços ou módulos não parados ou descarregados antes da suspensão. Para uma boa discussão desse problema, além de maneiras de contornar isso, consulte Suspender para o Ram no wiki do Arch.

O Wiki do Arch também sugere permitir que um usuário em particular execute pm-suspend sem sudo a visudo para adicionar a seguinte linha a /etc/sudoers :

username  ALL = NOPASSWD: /usr/sbin/pm-suspend

O LXDE usa o xfce4-power-manager , que usa pkexec para chamar pm-suspend . pkexec permite a execução de um programa como outro usuário, neste caso root .

A autenticação é tratada por polkit . Normalmente, pediria uma senha, mas como aprendi com pkexec sem senha , é possível suprimir isso através de um arquivo em /usr/share/polkit-1/actions .

Há um arquivo chamado org.freedesktop.upower.policy ( upower está envolvido na chamada de pm-suspend , mas deixei de lado por simplicidade).

Este arquivo contém a linha <allow_active>yes</allow-active> , que é o que permite que a ação prossiga sem pedir uma senha.

Ações relacionadas à energia são muito mais complicadas do que bloquear a tela ou abrir o menu. Pode ser melhor usar a opção suspender no gerenciador de energia.

Se a sua função de suspensão funcionar, você pode achar isso conveniente. Se não parecer funcionar primeiro, verifique as configurações no gerenciador de energia. No Lubuntu, o botão de suspensão não está configurado para suspender por padrão.

Você também pode gostar de trabalhar com os problemas na página do Arch para usar pm-suspend diretamente. Mas tenha cuidado. Eu usei o comando diretamente em vários outros laptops sem nenhum problema. Neste laptop em particular (Lenovo S10-3) ele matou o driver do wifi. Eu tive que desconectar a bateria do CMOS para que funcionasse novamente.

    
por chaskes 23.10.2014 / 17:32
2

Claro,

você pode tentar isto:

echo mem > /sys/power/state 

talvez você precise ser sudo para executá-lo.

    
por Kresimir Pendic 23.10.2014 / 23:45
1

Isso pode ser feito através do DBus, sem a necessidade de privilégios sudo ou superiores. Você pode criar um alias ou script para isso.

dbus-send --session --dest=org.freedesktop.PowerManagement \
 /org/freedesktop/PowerManagement \
 org.freedesktop.PowerManagement.Suspend

Melhor explorar para todas as opções disponíveis usando d-feet .

  1. Instalar d-pés

    sudo apt-get install d-feet
    
  2. Siga

    D-Feet → Guia Sessão
    org.freedesktop.PowerManagement
    /org/freedesktop/PowerManagement
    org.freedesktop.PowerManagemenl

    D-Feet → aba Sistema ou Sessão | → <dbus-name>
    <object-path>
    <interface> : lista de métodos, propriedades e amp; sinais

Referências:

  • man dbus-send
  • /usr/share/dbus-1/interfaces/org.freedesktop.PowerManagement.xml

    /usr/share/dbus-1/services/ para o barramento da sessão em /usr/share/dbus-1/system-services/ para o barramento do sistema

    /usr/share/dbus-1/interfaces/ interfaces de ambos

    O acesso ao serviço de barramento do sistema mais requer privilégios de root ou edição de política polkit . Veja resposta chaskes .

por user.dz 23.01.2015 / 21:01