หน้าจอ GNU ไม่ตอบสนองดูเหมือนถูกบล็อก


88

หน้าจอ GNU ดูเหมือนจะค้าง ไม่สามารถป้อนข้อมูลของผู้ใช้

ฉันใช้หน้าจอ GNU และเมื่อฉันกดหน้าจอมันก็ไม่ตอบสนอง ฉันสามารถเรียกใช้คำสั่งหน้าจอ GNU ทั้งหมดได้ แต่ป้อนข้อมูลของผู้ใช้ไม่ได้ ฉันไม่อยากฆ่าหน้าจอนี้เพราะฉันมีงานสำคัญและฉันไม่อยากเสียมันไป


คำตอบ:


133

ในคำสั่งด้านล่างให้แทนที่Ctrlด้วยปุ่ม Escape ของคุณสำหรับคำสั่งหน้าจอ

ลองCtrl+ a qซึ่งเป็นลำดับในการปลดบล็อกการเลื่อน

Ctrl+ a sคือลำดับที่บล็อกการเลื่อนซึ่งจะทำให้หน้าจอดูเหมือนค้าง


มันใช้งานได้ แต่ในหน้าจอเดียวส่วนอีกหน้าจอจะหยุดทำงาน :(
sirus

7
คุณเซอร์เพิ่งทำให้วันของฉัน :) เอกสารหน้าจอ GNU ไม่ปรากฏขึ้นเมื่อ googling "gnu screen freeze": /
david_p

1
ผมมีปัญหาเดียวกัน. มีเพียงหน้าจอเดียวเท่านั้นที่หยุดนิ่งซึ่งทำให้ฉันเชื่อว่าปัญหา "เฉพาะหน้าจอ" อันที่จริงฉันกด Ctrl-A s โดยไม่ได้ตั้งใจ
smithfarm

ฉันคุ้นเคยกับการใช้ CTRL + A เพื่อไปที่ด้านหน้าของบรรทัดคำสั่งเพื่อเพิ่มsudo(เนื่องจากฉันลืมที่จะเริ่มต้นด้วย) เมื่อฉันใช้หน้าจอฉันจะล็อคมันตลอดเวลา! อย่างที่ความเห็นก่อนหน้านี้บอกว่าCTRL+A qส่วนใหญ่ใช้งานได้บางครั้งก็อยู่ที่หน้าจอ Wish CTRL + A ไม่ใช่ค่าเริ่มต้นบนเซิร์ฟเวอร์ที่ฉันใช้มากฉันเปลี่ยนเป็นคีย์ "ESC"
johnnyB

1
รวมสัตว์ร้ายตัวน้อยที่น่ารังเกียจนี้เข้ากับ Ctrl + S ที่น่ากลัวของ PuTTY ซึ่งส่ง XOFF และมันทำให้ฉันกลัว "s" บนแป้นพิมพ์ของฉันจริงๆ มันชั่วร้าย การกดแป้นพิมพ์แบบ PuTTY ผิดปกติคือ Ctrl + Q เพื่อส่ง XON ... "q" คือผู้ช่วยให้รอด ขอบคุณคำตอบเด็ก 6 ขวบ
JNevill

67

เมื่อใช้ฉาบ , คุณจะได้รับหน้าจอ freezed เห็นได้ชัดถ้าคุณกด+Ctrl sสิ่งนี้จะส่งXoffสัญญาณปิดกั้นเอาต์พุตของเทอร์มินัล

วิธีแก้คือกด Ctrl + qเพื่อส่งXonสัญญาณ


ทำงานให้ฉันใน ROXTerm บน Linux ด้วย - หน้าจอถูกล็อคและแจ้งให้ฉันเข้าสู่ระบบ
Pocketsand

บันทึกวัน (และคืน) ของฉัน
sk

8

ข้างต้นใช้งานได้ดีหากเป็นปัญหาของคุณ

สิ่งนี้อาจเกิดขึ้นได้หากคุณใช้งานเครื่องอื่นและไม่ได้ไปที่หน้าต่างสักครู่เมื่อคุณย้อนกลับไปมันจะถูกแช่แข็ง ในการแก้ไขปัญหานี้คุณสามารถลองทำดังต่อไปนี้:

1) สร้างหน้าต่างใหม่

Ctrl-a c

2) ssh ลงในช่องที่คุณใส่เข้าไปในช่องในหน้าต่างที่ค้าง

3) ค้นหากระบวนการที่ ssh ทำงานภายใต้:

ps aux | grep <remote_box_on_frozen_screen>

หรือ

ps aux | grep <your_user_id>

4) ฆ่ากระบวนการ

kill <process_id>

ไม่รู้ว่าฉันเข้าสู่สภาวะที่ไม่ตอบสนองเช่นนี้ได้อย่างไรเพราะโดยปกติแล้ว ctrl-q ใช้ได้กับฉัน แต่ฉันต้องทำสิ่งนี้และสูญเสียงานของฉัน +1 สำหรับคำแนะนำในกรณีฉุกเฉิน
taranaki

2
บ่อยกว่าที่ไม่สามารถปิดการเชื่อมต่อ SSH ที่ค้างไว้ได้โดยการกดEnterจาก~นั้นจากนั้น.(ดูเพิ่มเติมที่นี่ )
fotNelton

3

เมื่อคุณทำscreen -lsหมายเลขแรกของชื่อหน้าจอคือรหัสกระบวนการ ดังนั้นหากผลลัพธ์เป็น

There is a screen on:
    21605.pts-0.Random-server   (11/12/2017 11:44:15 PM)    (Detached)
1 Socket in /var/run/screen/S-kg.

จากนั้นสิ่งนี้จะฆ่ามัน:

kill 21605

สังเกตว่าหมายเลขสำหรับคำสั่ง kill จะเหมือนกับในscreen -lsเอาต์พุต


3

หากคุณใช้คำสั่ง backtick ในบรรทัดสถานะนั่นคือถ้าคุณ.screenrcมีสิ่งนี้:

backtick 1 0 60 /some/script.sh

จากนั้นคุณต้องแน่ใจว่าสคริปต์นั้นเร็ว: เห็นได้ชัดว่าการดำเนินการ backtick บล็อก IO ทั้งหมดไปยังหน้าจอ

หากคุณทำการเปลี่ยนแปลงการกำหนดค่าคุณจะต้องรีสตาร์ทเซสชันหน้าจอ (เนื่องจากการกำหนดค่าใช้กับเซสชันใหม่เท่านั้น)


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