Для систем под управлением KDE 4.x это будет
qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
Для Ubuntu / Gnome: qdbus org.gnome.ScreenSaver /ScreenSaver Lock
Qdbus, как написано выше, просто отправляет сообщение на шину сообщений, которую получает блокировщик экрана. Команда, однако, заблокирует экран. qdbus просто спрашивает: "Кто-нибудь заблокирует экран?" Преимущество использования qdbus заключается в том, что он поддерживается на других платформах, кроме KDE. Текст ниже работает только для KDE4.
Теперь смотри и учись: о)
Чтобы понять это немного подробнее, требуется немного хитрости bash:
- перечислить все процессы, пока они разблокированы
ps -ef
;
- заблокировать экран
qdbus ..........
;
- подождите, чтобы заблокировать экран
sleep 1
- затем перечислите процессы, пока они заблокированы
ps -ef
- найти различия между выводом обеих команд
diff <( cmd1 ) <( cmd2 )
Командная строка:
diff <( ps -ef ) <( qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock; sleep 1; ps -ef )
0a1
>
242d242
< jhendrix 17088 16352 0 21:11 pts/4 00:00:00 /bin/bash
245,246c245,247
< jhendrix 17091 17088 0 21:11 pts/4 00:00:00 ps -ef
< jhendrix 17092 17089 0 21:11 pts/4 00:00:00 qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
---
> jhendrix 17093 2801 11 21:11 ? 00:00:00 /usr/lib/kde4/libexec/kscreenlocker --forcelock
> jhendrix 17095 17093 11 21:11 ? 00:00:00 kblankscrn.kss -root
> jhendrix 17099 17089 0 21:11 pts/4 00:00:00 ps -ef
Это сужает список потенциальных команд для блокировки экрана, не так ли? Теперь ответ на ваш вопрос прост: для блокировки экрана из командной строки используйте: /usr/lib/kde4/libexec/kscreenlocker --forcelock
blankscrn.kss - это дочерний процесс kscreenlocker, поэтому kscreenlocker - это тот, который нужно запустить.
Чтобы просмотреть синтаксис команды:
/usr/lib/kde4/libexec/kscreenlocker --help
Что оно делает? Он в основном рисует большое черное окно, которое покрывает весь экран, и заставляет его быть поверх всего. Он ловит все нажатия клавиш и открывает диалоговое окно входа в систему.
Наконец, в какой пакет он входит (kde-workspace-bin)?
$ dpkg -S /usr/lib/kde4/libexec/kscreenlocker
kde-workspace-bin: /usr/lib/kde4/libexec/kscreenlocker
kscreensaver
может быть , вы должныps aux
что