对于运行KDE 4.x的系统,
qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
对于Ubuntu / Gnome: qdbus org.gnome.ScreenSaver /ScreenSaver Lock
如上所述的Qdbus只是在消息总线上发送一条消息,锁屏程序会接收该消息。但是,该命令将锁定屏幕。qdbus很好地问:“请问有人锁定屏幕吗?” 使用qdbus的优点是,除KDE之外,其他平台也支持它。以下文本仅适用于KDE4。
现在观看并学习:o)
为了更详细地了解这一点,需要一些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
这样做