สำหรับระบบที่ใช้ KDE 4.x ซึ่งจะเป็น
qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
สำหรับ Ubuntu / Gnome: qdbus org.gnome.ScreenSaver /ScreenSaver Lock
Qdbus ตามที่เขียนไว้ด้านบนเพียงแค่ส่งข้อความบนบัสข้อความซึ่งล็อกเกอร์หน้าจอได้รับ อย่างไรก็ตามคำสั่งจะล็อคหน้าจอ qdbus เพิ่งถามอย่าง "ใครจะล็อคหน้าจอได้มั้ย" ข้อดีของการใช้ qdbus คือรองรับบนแพลตฟอร์มอื่นนอกเหนือจาก KDE ข้อความด้านล่างใช้งานได้กับ KDE4 เท่านั้น
ตอนนี้ดูและเรียนรู้: o)
หากต้องการรายละเอียดเพิ่มเติมเล็กน้อยต้องใช้เล่ห์เหลี่ยมเล็กน้อย:
- รายการกระบวนการทั้งหมดในขณะที่ปลดล็อค
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
นี่จะแคบลงรายการคำสั่งที่เป็นไปได้เพื่อล็อคหน้าจอใช่ไหม? ตอนนี้คำตอบสำหรับคำถามของคุณนั้นง่ายมาก: ในการล็อคหน้าจอจาก commandline use: /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
ที่