Как приостановить машину из командной строки в 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
,
Установите д-ноги
sudo apt-get install d-feet
следить
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
, Смотрите ответ на вопросы.