ฉันจะรีสตาร์ทหน้าจอค้างใน Ubuntu โดยไม่ทำให้หน้าต่างที่เปิดอยู่หายไปได้อย่างไร


12

ฉันมีอุปกรณ์ที่ใช้งาน Ubuntu 12.04 LTS มีหน้าจอค้าง โดยทั่วไปผมได้เพิ่มขึ้นเพียงเข้าสู่ TTY ใช้ได้เช่นCtrl- Alt- F1และดำเนินการคำสั่งหรือ/etc/init.d/lightdm restart service lightdm restartอย่างไรก็ตามนี่เป็นการฆ่าทุกอย่างที่ฉันเปิดไว้ ฉันจะหลีกเลี่ยงสิ่งนี้ได้อย่างไร


1
คุณไม่สามารถทำสิ่งนี้ได้ มันเป็น lightdm ซึ่งแสดง / จัดการ windows ในระบบ x
Apple II

สิ่งนี้จะฆ่าทุกสิ่งที่คุณเปิด แต่กาลครั้งหนึ่ง ctrl-alt-backspace จะรีสตาร์ท X ซึ่งง่ายกว่าการสลับไปใช้ TTY ล็อกอินและขอให้ X รีสตาร์ทเอง ฉันไม่แน่ใจว่ามันยังใช้ได้อยู่หรือเปล่า

@Douglas B. Staple - ไม่ทำงานกับ Ubuntu 12.04 LTS ไม่แน่ใจว่ายังใช้งานได้กับการแจกแจงอื่น ๆ หรือไม่หรือว่าเฉพาะกับ Unity
PeanutsMonkey

อาจมีวิธีการแทนที่ตัวจัดการหน้าต่างขณะทำงาน (เป็นไปได้สำหรับ GNOME-Shell อย่างน้อยที่สุดหรือกับโปรแกรมจัดการหน้าต่าง i3 ดังนั้นอาจมีบางวิธี)
FSMaxB

@FSMaxB - คุณช่วยอธิบายรายละเอียดเกี่ยวกับวิธีการใช้ Gnome-Shell หรือ i3 Window Manager ได้ไหม?
PeanutsMonkey

คำตอบ:


12

การปฏิเสธความรับผิด:ตามความเห็นของเบรนเดนอาจจะล้าสมัยและไม่สามารถใช้งานได้กับ Ubuntu เวอร์ชันใหม่กว่า โปรดเตรียมพร้อมด้วยว่าคุณอาจสูญเสียหน้าต่างที่เปิดอยู่

ตอนนี้ฉันได้มันมาสำหรับ Unity (ฉันเพิ่งแทนที่เชลล์ GNOME ของฉันด้วย unity โดยไม่ต้องออกจากระบบหรือปิดหน้าต่าง):

  1. ไปที่ tty1 [Ctrl] + [Alt] + [F1]
  2. พิมพ์DISPLAY=:0เพื่อให้โปรแกรมทราบบนพอร์ตใดเพื่อค้นหา X-Server
  3. export DISPLAY
  4. unity --replaceหรือgnome-shell --replace(คุณสามารถแทนที่ GNOME-Shell ด้วยความสามัคคีหรือความสามัคคีโดย GNOME-Shell)

ใช้งานได้เฉพาะในกรณีที่ไม่ใช่ X-Server หรือ GNOME เท่านั้นที่แช่แข็ง แต่มีเพียง Unity หรือ GNOME-Shell

วิธีการทำงาน: การสื่อสารระหว่างโปรแกรมและ X-Server สำหรับแสดง UI ของพวกเขานั้นทำงานผ่านซ็อกเก็ตเครือข่าย โดยปกติจะอยู่ที่ "localhost: 0" short ": 0" โดยการตั้งค่าตัวแปร DISPLAY โปรแกรมจะทราบตำแหน่งที่จะค้นหา X-Server เพื่อสื่อสารกับมันดังนั้นโปรแกรมจะแสดงบน X-Server บน tty7 แม้ว่าโปรแกรมจะทำงานบน tty1

เนื้อหาของ windows ได้รับการจัดการโดย X-Server ในขณะที่ตำแหน่งและเส้นขอบของ windows ถูกจัดการโดยตัวจัดการหน้าต่างที่รวมอยู่ใน unity หรือ GNOM-shell ดังนั้นจึงมีวิธีการแทนที่เฉพาะพวกเขาโดยไม่ต้องรีสตาร์ทแอปพลิเคชันบน X- เซิร์ฟเวอร์

PS: ฉันแค่อธิบายสิ่งที่ฉันเข้าใจว่าเป็นดังนั้นโปรดแก้ไขและแก้ไขถ้าฉันผิดในบางจุด

แก้ไข: สำหรับ GNOME-Shell มีวิธีอื่นในการเริ่มต้นใหม่ หลังจากเปลี่ยนเป็น tty เพียงพิมพ์pkill -HUP gnome-shellฉันไม่รู้ว่ามีบางอย่างที่คล้ายคลึงกับ Unity หรือไม่


ที่ทำงานเหมือนปาฏิหาริย์ อันที่จริงมันช่วยฉันในวันนี้ ขอบคุณมาก. ฉันจะขอบคุณมากถ้าคุณสามารถอธิบายได้ว่าแต่ละขั้นตอนทำอะไรที่บาร์ขั้นตอนที่ 1 ฉันไม่ค่อยเข้าใจว่าเกิดอะไรขึ้นภายใต้ประทุน
PeanutsMonkey

ขอบคุณสำหรับคำตอบ! Note unity --help says: "--replace Run unity /! \ นี่คือการเข้ากันได้กับอินเตอร์เฟสเดสก์ท็อปอื่นและทำหน้าที่เหมือนกับการรัน unity โดยไม่ต้อง
Tom

นอกจากนี้ฉันพบว่าฉันต้องเรียกใช้ความสามัคคีผ่าน sudo เพื่อบันทึกหน้าต่างของฉัน
Tom

2
- แทนที่ถูกยกเลิกและไม่ทำอะไรเลยและวิธีนี้จะรีสตาร์ทเซสชันหมายความว่าคุณสูญเสียหน้าต่างทั้งหมด :(
เบรนเดน

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