ฉันจะล็อกหน้าจอโดยใช้ lockscreen ใหม่จากบรรทัดคำสั่งได้อย่างไร


19

Ubuntu 14.04 แนะนำlockscreen ใหม่ที่มีลักษณะคล้ายกับหน้าจอเข้าสู่ระบบ

lockscreen ใหม่

ฉันยังคงสามารถล็อคหน้าจอโดยใช้คำสั่งgnome-screensaver-command --lock(อย่างที่ฉันเคยทำมาก่อน) ซึ่งอายุต่ำกว่า 14.04 ล็อคหน้าจอ แต่:

  • หากคุณเรียกใช้จากเดสก์ท็อปล็อคหน้าจอโดยใช้ lockscreen ใหม่
  • หากคุณกำลังทำงานจากคอนโซลเสมือนหรือผ่านทาง SSH, ล็อคหน้าจอโดยใช้lockscreen เก่า

ฉันได้ลองใช้xdg-screensaver lockด้วย แต่ก็ใช้งานได้เช่นเดียวกับที่gnome-screensaver-command --lockทำ (ใช้ล็อคหน้าจอใหม่เมื่อรันจากเดสก์ท็อปเท่านั้น)

การทำงานlight-locker-command --lockไม่ทำงานเนื่องจากlight-lockerไม่ได้ติดตั้ง

ฉันเดาว่าต้องมีความแตกต่างระหว่างการรันคำสั่งเดียวกันจากเดสก์ท็อปและการเรียกใช้ผ่านทาง SSH / virtual console แต่ฉันไม่สามารถค้นหาความแตกต่างในตัวแปรสภาพแวดล้อมได้

ดังนั้นคำถามของฉันคือ: ฉันจะล็อคหน้าจอโดยใช้ Unity lockscreen ใหม่และไม่ Lockscreen เก่าจากบรรทัดคำสั่งได้อย่างไร

คำถามนี้อาจเกี่ยวข้องกันเพราะจะถามคำสั่งใหม่ที่จำเป็นต้องใช้ดังนั้นนี่เป็นคำถามอื่น: ทำไมการรันคำสั่ง lock เดียวกันจึงให้ผลลัพธ์ที่แตกต่างกัน

โปรดทราบว่าgnome-screensaverจะไม่ถูกใช้อีกต่อไปใน 14.04 ตามรายงานข้อผิดพลาดนี้ :

นั่นไม่ใช่ข้อผิดพลาดของสกรีนเซฟเวอร์ gnome จริง ๆ ส่วนประกอบนั้นหยุดการใช้งานอย่างเชื่อถือได้


2
ฉันก็อยากจะรู้เช่นกัน การใช้งานเข้าdm-tool lockมาใกล้: มันล็อคหน้าจอ แต่ (ซึ่งแตกต่างจากหน้าจอล็อค Unity เริ่มต้น) ยังช่วยให้คุณสลับผู้ใช้
Aibara

2
dm-tool lockและdm-tool switch-to-greeterดูเหมือนว่าจะทำสิ่งเดียวกัน: นำคุณกลับไปที่หน้าจอเข้าสู่ระบบ (greeter) ซึ่งดูคล้ายกับ lockscreen มาก
Léo Lam

คำตอบ:


14

ฉันไม่ได้gnome-screensaverติดตั้งและคำสั่งเดียวที่ฉันสามารถค้นหาได้คือ:

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock


5
qdbus org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
กุมภ์กำลัง

สิ่งนี้เคยทำงาน แต่ดูเหมือนจะไม่ทำงานอีกต่อไปใน 15.10: /
Léo Lam

@ LéoLamคุณใช้ภาพสดอยู่ไหม? ฉันยังใช้ 14.04 อยู่ แต่ฉันได้ทดสอบทั้งคำสั่งของฉันและ Aquarius Power ในเวลา 15.10 และทำให้มันทำงานได้ อย่างไรก็ตามฉันต้องเปิดใช้งานหน้าจอล็อคเพื่อให้มันทำงานผ่านคำสั่งนี้gsettings set org.gnome.desktop.lockdown disable-lock-screen false
Aibara

ไม่มันอยู่ในการติดตั้ง Ubuntu จริง ผลตอบแทนgsettings get org.gnome.desktop.lockdown disable-lock-screen falseขณะนี้ไม่มีเอาต์พุตเมื่อเรียกใช้ dbus-send บางทีสกรีนเซฟเวอร์คำพังเพยที่จำเป็นสำหรับการทำงานนี้?
Léo Lam

1
ดูคำตอบของฉันได้โปรดบางที 15.10 ถูกยกเลิกโดยใช้org.gnome.ScreenSaverอินเทอร์เฟซของ dbus ดังนั้นจึงเป็นความคิดที่ดีกว่าในการสื่อสารกับอินเทอร์เฟซ dbus ของ Unity
Sergiy Kolodyazhnyy

3

คำตอบที่ยอมรับมีความคิดที่ถูกต้องยกเว้นว่า lockscreen เกี่ยวข้องกับพาเนลสามัคคีในขณะที่ org.gnome.ScreenSaverเห็นได้ชัดว่าเป็นคีมาประเภทที่เกี่ยวข้องกับ Gnome ดังนั้นมันอาจจะทำงานได้หรือไม่ก็ได้

มีอยู่ แต่อินเตอร์เฟซสำหรับ dbus เอกภาพและทั้งหมดที่เราต้องการคือการเรียกวิธีการนี้com.canonical.Unity.Session.Lockเช่นดังนั้น

qdbus com.canonical.Unity  /com/canonical/Unity/Session com.canonical.Unity.Session.Lock

หมายเหตุด้านข้าง :

หลักฐานของความจริงที่ว่ามันเกี่ยวข้องกับพาเนลเอกภาพนั้นง่ายเมื่อคุณล็อคหน้าจอกระบวนการ/usr/lib/unity/unity-panel-serviceจะเปลี่ยน/usr/lib/unity/unity-panel-service --lock-modeเป็นสังเกตจาก tty1


สิ่งนี้จะทำงานในเซสชันกราฟิก แต่ล้มเหลวในเซสชัน SSH แม้ว่าการตั้งค่า $ DISPLAY ด้วยตนเอง "บริการ 'com.canonical.Unity' ไม่มีอยู่"
Léo Lam

สิ่งนี้ไม่เกี่ยวกับDISPLAYตัวแปร แต่เกี่ยวข้องกับ dbus ฉันไม่ทราบว่าเกิน ssh Unity ไม่มีเซสชัน dbus หรือไม่ดังนั้นฉันจึงไม่สามารถช่วยคุณได้ในส่วนนั้น ฉันจะถามรอบ ๆ แต่เท่าที่ฉันสามารถพูดได้
Sergiy Kolodyazhnyy

ลองใช้dbus-launch --exit-with-session gnome-terminalก่อนหน้านั้น serverfault.com/a/411326
Sergiy Kolodyazhnyy

ยังสามารถเชื่อมต่อกับหน้าจอ / tmux เซสชันที่ทำงานภายใน X และเรียกใช้คำสั่งจากที่นั่น เป็นวิธีแก้ปัญหาสุดท้ายของฉันเพื่อเชื่อมต่อกับเซสชัน dbus ที่ถูกต้องจาก vterm
Iiridayn

2

เมื่อเร็ว ๆ นี้ฉันพบว่าใช้ xdg-screensaver lock งานได้ดีและค่อนข้างง่ายเกินไป!


มันถูกกล่าวถึงใน OP ว่ามันไม่ทำงานในทุกกรณี เฉพาะเมื่อคุณเรียกใช้ภายในเครื่องในเทอร์มินัลจาก GUI
Léo Lam

ทำงานให้ฉันจากระยะไกลในเซสชัน SSH ไปยังเครื่อง 18.04 LTS
Benjamin R

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.