Как приостановить машину из командной строки в LXDE

Я использую Lubuntu 14.04 с Openbox 3.5.2.
Для блокировки экрана предусмотрены однострочники: dm-tool lock
и для всплывающего меню выхода: lxsession-default quit

Однако, если мне нужно выполнить приостановку, мне нужно сначала всплыть упомянутое меню,
затем перейдите к опции "Приостановить" и нажмите ввод.

Можно ли это сделать одной командой?

3 ответа

Вы можете приостановить с терминала с:

sudo pm-suspend

В некоторых случаях звонит pm-suspend напрямую может вызвать проблемы с драйверами wi-fi и другими программами. Более того, справочная страница для pm-suspend говорит, что хотя это нормально для вызова из командной строки, обычно он вызывается через менеджер питания вашего компьютера.

Страница man добавляет, что при вызове из командной строки, "it is not guarenteed that all of your programs in your desktop session keep working as expected."

Похоже, что большинство проблем связано со службами или модулями, которые не были остановлены или выгружены до приостановки. Для хорошего обсуждения этой проблемы, а также способов обойти ее, см. Suspend to Ram в вики Arch.

Arch Wiki также предлагает разрешить запуск определенного пользователя pm-suspend без sudo через visudo добавить следующую строку в /etc/sudoers:

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

LXDE использует xfce4-power-manager, который использует pkexec звонить pm-suspend, pkexec разрешает выполнение программы от имени другого пользователя, в этом случае root,

Аутентификация обрабатывается polkit, Обычно он запрашивает пароль, но, как я узнал из pkexec без пароля, можно подавить это через файл в /usr/share/polkit-1/actions,

Там есть файл с именем org.freedesktop.upower.policy (upower участвует в вызове pm-suspend но я упустил это для простоты).

Этот файл содержит строку <allow_active>yes</allow-active>, что позволяет выполнить действие без запроса пароля.

Действия, связанные с питанием, намного сложнее, чем блокировка экрана или отображение меню. Возможно, лучше использовать параметр приостановки в диспетчере питания.

Если ваша функциональная клавиша приостановки работает, вы можете найти это удобным. Если сначала он не работает, проверьте настройки в диспетчере питания. В Lubuntu кнопка сна по умолчанию не отключена.

Вам также может понравиться проработать вопросы на странице Arch, чтобы использовать pm-suspend непосредственно. Но будь осторожен. Я использовал команду непосредственно на нескольких других ноутбуках без проблем. На этом конкретном ноутбуке (Lenovo S10-3) он убил драйвер wifi. Мне пришлось отключить батарею CMOS, чтобы она снова заработала.

Конечно,

Вы можете попробовать это:

echo mem > /sys/power/state 

Может быть, вы должны быть sudo, чтобы запустить его.

Это можно сделать через DBus без необходимости sudo или более высокие привилегии. Вы можете создать псевдоним или скрипт для него.

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

Лучше изучить все доступные варианты, используя d-feet,

  1. Установите д-ноги

    sudo apt-get install d-feet
    
  2. следить

    D-Feet → Вкладка "Сессия"
    org.freedesktop.PowerManagement
    /org/freedesktop/PowerManagement
    org.freedesktop.PowerManagemenl

    D-Feet → Система или вкладка Сессия
    <dbus-name>
    <object-path>
    <interface>: список методов, свойств и сигналов

Рекомендации:

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

    /usr/share/dbus-1/services/ для сессионного автобуса
    /usr/share/dbus-1/system-services/ для системной шины

    /usr/share/dbus-1/interfaces/ интерфейсы от обоих

    Для доступа к сервису системной шины большинству нужны права root или редактирование политики polkit, Смотрите ответ на вопросы.

Другие вопросы по тегам