Как приостановить из командной строки, чтобы экран был заблокирован?

Я использую 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) для этого не требуются права root [поскольку я хотел бы, чтобы команда была назначена сочетанию клавиш].

10
задан 13 April 2017 в 15:24

4 ответа

Примечание: xscreensaver-command работает только с опцией -lock (с 1 дефисом, а не с двойным, как с gnome-screensaver-command). Тем не менее, команда работает только во время работы заставки, поэтому не очень полезна.

0
ответ дан 13 April 2017 в 15:24

Я использовал команду dbus amfcosta для приостановки из командной строки. Однако на резюме, eth0 снизился.

Я затем нашел эту команду:

xfce4-session-logout --suspend

Эта команда отключает сети, приостанавливает и затем повторно позволяет объединиться в сеть, когда компьютер просыпается.

xfce4-session-logout xfce определенные, но другие настольные среды, может иметь подобный *-session-logout команды.

Я выполняю Xubuntu 14.04.

Обновление: Это не может влиять на других, но оказывается, что на моем Asus EEE 900, проводное соединение Ethernet только работает каждое второе время, которое просыпается EEE. Это является, конечно, очень раздражающим, и средства, которые приостанавливают, неприменимы.

2
ответ дан 13 April 2017 в 15:24

Вы можете сделать это, используя следующее:

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"
[ 1112] Если приведенная выше команда не работает, вы также можете попробовать использовать файл сценария оболочки (например, 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, как указано в одном комментарии.

0
ответ дан 13 April 2017 в 15:24

В Ubuntu 15.10 это также работает:

gnome-screensaver-command --lock && systemctl -i suspend
0
ответ дан 13 April 2017 в 15:24

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

Похожие вопросы: