Як призупинити роботу командного рядка таким чином, що екран заблокований?


10

Я використовую Xubuntu 12.04. У програмі Power Manager я перевірив Розширений -> Блокування екрану під час призупинення / сну. Якщо я вирішив призупинити роботу з головного меню / Панелі 1, екран заблокований. Однак якщо я використовую dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend(див. Як я можу призупинити / перейти в сплячку з командного рядка? Я використовую цю команду за допомогою комбінації клавіш), екран не блокується. Як я можу (1) призупинити роботу системи (2), коли екран заблокований одночасно (3), не вимагати кореневих прав для цього [оскільки я хотів би, щоб команда була призначена для комбінації клавіш].

Відповіді:


10

Це можна зробити за допомогою наступного:

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

У комбінації клавіш потрібно поставити sh -c "<command>"заміну <command>на команду вище, наприклад:

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

Якщо вищевказана команда не працює, ви також можете спробувати скористатися файлом сценарію оболонки (наприклад suspend_lockscreen.sh). Спочатку створіть у файлі виклик наступних команд у консолі:

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

Це створить файл з назвою suspend_lockscreen.sh у домашній папці користувача. Потім, в ярлику просто зателефонувати: ./suspend_lockscreen.sh.

Примітка: gnome-screensaver-commandможна замінити xscreensaver-command, як зазначено в одному коментарі.


Ні, він не блокує лише екран і забуває призупинити його відповідно до коментаря, зробленого у відповіді, яку я зробив;)
Rinzwind

1
Ах, добре. Я просто зрозумів , що gnome-screensaver-commandтакож може бути замінений xscreensaver-commandтому не потрібно ніяка додаткова установка. Без && dbus-send...частини перша просто отримує замок (без підвіски); з нею отримує підвіску із замком під час пробудження. Ідеально.
Маріус Гоферт

На жаль, команда працює з терміналу, але не з ярлика клавіатури, яку я визначив :-( Чи знаєте ви, в чому може бути проблема?
Маріус Хоферт

@MariusHofert Я оновив відповідь про те, як використовувати команди з клавіатури. Подивіться, чи працює вона як потрібно. (Я тестував в Ubuntu 12.04 і він працював).
амфкоста

Ще одна і та ж проблема: блокування працює; призупинення не робить (Xubuntu 12.04)
Маріус Хоферт

2

Я використовував команду dbus amfcosta для призупинення роботи з командного рядка. Однак після відновлення eth0 знизився.

Потім я знайшов цю команду:

xfce4-session-logout --suspend

Ця команда вимикає роботу з мережею, призупиняє і знову вмикає мережу, коли комп'ютер прокидається.

xfce4-session-logoutє специфічним для xfce, але інші середовища робочого столу можуть мати подібні *-session-logoutкоманди.

Я запускаю Xubuntu 14.04.

Оновлення: це може не впливати на інших, але виявляється, що на моєму Asus EEE 900, дротовий Ethernet-з'єднання працює лише кожен інший раз, коли EEE прокидається. Це, звичайно, дуже дратує, і означає, що призупинення непридатне.


1

З Ubuntu 15.10 це також працює:

gnome-screensaver-command --lock && systemctl -i suspend

0

Примітка: xscreensaver-commandпрацює лише з опцією -lock(з 1 дефісом, а не з подвійним, як з gnome-screensaver-command). Однак команда працює лише тоді, коли заставка працює, тому не дуже корисна.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.