จะแก้ไขระบบ Ubuntu ที่ไม่ตอบสนองได้อย่างไร


22

ฉันใช้ Ubuntu บางครั้งระบบไม่ตอบสนองใด ๆ กับเมาส์และคีย์บอร์ด มีวิธีใดบ้างที่จะแก้ปัญหานี้ได้ยกเว้นการกดปุ่มรีเซ็ตบนเครื่อง?


1
นั่นเป็นคำถามที่ยากลำบากเพราะคุณไม่ให้พวกเราทำต่อไป ... ถ้าเป็นฉันฉันจะ CTRL + ALT + F [1..6] เข้าสู่ระบบและฆ่ากระบวนการบางอย่าง แต่ฉันมักจะรู้ว่าสิ่งที่ทำให้เครื่องของฉันไม่ตอบสนองในขณะที่คุณไม่ได้ นอกจากนี้บางครั้งฉันเขียนโปรแกรมที่ฉันรู้ว่าจะไม่ตอบสนองเพราะฉันต้องการผลลัพธ์ของโปรแกรม
ixtmixilix

คุณแน่ใจหรือไม่ว่าระบบไม่ตอบสนองหรือระบบยังทำงานอยู่ แต่อุปกรณ์อินพุตหยุดทำงานหรือไม่
Bobby

คำตอบ:


35

หากคุณต้องการวิธีการรีบูตโดยไม่บันทึกเอกสารที่เปิดอยู่ แต่ไม่ต้องกดปุ่มรีเซ็ตหมายความว่ามีวิธีที่จะทำให้ข้อมูลสูญหายน้อยลง ครั้งแรกลองCtrl+ +Alt F1ที่ควรนำคุณเข้าสู่คอนโซลเสมือนดังที่ixtmixilixกล่าว เมื่อคุณอยู่ในคอนโซลเสมือนCtrl+ Alt+ Deleteจะปิดและรีบูตเครื่อง

ถ้าเทคนิคที่ใช้งานไม่ได้มีเสมอAlt+SysRqREISUB +

สำหรับการแก้ไขปัญหาโดยไม่ต้องรีบูตเครื่องโดยไม่มีข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่เกิดขึ้นมันยากที่จะให้คำตอบที่ดี หากคุณสามารถอธิบายสถานการณ์ที่เกิดขึ้นได้ (วิธีที่ดีที่สุดคือแก้ไขคำถามของคุณเพื่อเพิ่มข้อมูล) นั่นอาจช่วยให้ผู้คนได้รับคำตอบที่ดี สิ่งอื่น ๆ ที่จะต้องพิจารณาคือว่าถ้าเครื่องคอมพิวเตอร์ของคุณจะกลายเป็นไม่ตอบสนอง - โดยเฉพาะถ้าจะใช้เวลามากกว่าไม่กี่วินาที AA สำหรับCtrl+ Alt+ F1เพื่อนำมาขึ้นคอนโซลเสมือน - แล้วคุณเกือบจะแน่นอนมีข้อผิดพลาดและการรายงานที่คุณสามารถ ทั้งช่วยชุมชนและอาจได้รับคำตอบ

GUI บกพร่องที่ทำให้ WM ไม่ตอบสนองหรือ X11 / Wayland

สิ่งนี้อาจเกิดขึ้นเนื่องจากการโต้ตอบระหว่างแอปพลิเคชันและตัวจัดการหน้าต่าง - หรือเซิร์ฟเวอร์ X11 หรือ Wayland เครื่องหมายที่เป็นลักษณะของปัญหาคือหากแอปพลิเคชันหยุดตอบสนองและป้องกันไม่ให้คุณป้อนข้อมูลด้วยแป้นพิมพ์หรือเมาส์ไปยังหน้าต่างแอปพลิเคชันอื่น (แอพลิเคชันไม่ควรจะสามารถที่จะทำเช่นนี้บางองค์ประกอบ GUI ต้องมีข้อผิดพลาดในนั้นแบบนี้จะเกิดขึ้น.) หากที่สิ่งที่เกิดขึ้นแล้วคุณสามารถฆ่ากระบวนการที่กระทำผิดในคอนโซลเสมือน (เป็นixtmixilixพาดพิงถึง):

  1. กดCtrl+ +AltF1

  2. เข้าสู่ระบบคุณจะไม่เห็นอะไรเลยเมื่อคุณป้อนรหัสผ่าน นั่นเป็นเรื่องปกติ

  3. ใช้ยูทิลิตีpsเพื่อค้นหาชื่อกระบวนการของโปรแกรมที่ละเมิด บางครั้งนี่เป็นเรื่องง่ายใน Ubuntu และบางครั้งก็ไม่ใช่ file-rollerยกตัวอย่างเช่นชื่อของกระบวนการจัดการที่เก็บข้อมูลคือ หากคุณมีปัญหาในการหาข้อมูลคุณมักจะพบข้อมูลออนไลน์โดยไม่มีปัญหามากเกินไป (หรือหากไม่สามารถทำได้คุณสามารถโพสต์คำถามเกี่ยวกับมัน)

    คุณสามารถpsส่งออกท่อของgrepเพื่อ จำกัด สิ่งต่าง ๆ ลง สมมติว่าเป็น Archive Manager ที่ทำให้เกิดปัญหา จากนั้นคุณสามารถเรียกใช้:

    ps x | grep file-roller
    

    คุณจะเห็นรายการสำหรับตัวคุณเองคำสั่งบวกรายการสำหรับgrepfile-roller

  4. SIGTERMพยายามที่จะฆ่ากระบวนการที่กระทำผิดด้วย สิ่งนี้ให้โอกาสในการล้างข้อมูลในนาทีสุดท้ายเช่นการล้างไฟล์บัฟเฟอร์การส่งสัญญาณไปยังเซิร์ฟเวอร์ระยะไกลที่กำลังจะตัดการเชื่อมต่อ (สำหรับโปรโตคอลที่ทำเช่นนั้น) และปล่อยทรัพยากรประเภทอื่น ๆ หากต้องการทำสิ่งนี้ให้ใช้killคำสั่ง:

    kill PID

    โดยที่PIDเป็นหมายเลข ID กระบวนการของกระบวนการที่คุณต้องการฆ่าซึ่งได้มาจากการทำงานpsในขั้นตอนที่ 3

  5. SIGTERMเป็นวิธีที่จะขอให้กระบวนการเลิกอย่างแน่นหนา กระบวนการสามารถละเว้นสัญญาณนั้นและจะทำเช่นนั้นเมื่อทำงานผิดปกติในบางสถานการณ์ ดังนั้นคุณควรตรวจสอบเพื่อดูว่ามันทำงาน ถ้ามันไม่ได้ฆ่ามันด้วยSIGKILLซึ่งมันไม่สามารถละเลยและที่ทำงานเสมอยกเว้นในกรณีที่หายากที่เป็นกระบวนการในการนอนหลับของยูพีเอส (หรือถ้ามันไม่ได้ทำงานจริงๆ แต่ค่อนข้างกระบวนการผีดิบ )

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

    kill -KILL PID

    หากคุณได้รับข้อความเช่นคุณรู้ว่าฆ่ามันด้วยการทำงาน หากคุณไม่ได้เอาต์พุตคุณก็รู้ว่าไม่ได้ผล ในกรณีนั้นอาจทำได้ แต่ควรตรวจสอบโดยเรียกใช้อีกครั้ง (กดปุ่มลูกศรขึ้นเพื่อเรียกคำสั่งก่อนหน้าเพื่อความสะดวกในการพิมพ์)kill: (PID) - No such processSIGTERMSIGTERMSIGKILL

  6. ในกรณีที่ไม่ค่อยเกิดขึ้นสำหรับกระบวนการของคุณหรือกระบวนการที่เป็นของrootหรือผู้ใช้รายอื่นนอกเหนือจากตัวคุณเองเสมอคุณต้องฆ่ากระบวนการดังrootกล่าว ในการทำเช่นนั้นให้เติมsudo (รวมถึงช่องว่างต่อท้าย) หน้าkillคำสั่งด้านบน หากคำสั่งดังกล่าวจะไม่ได้ทำงานหรือคุณบอกว่าคุณไม่ได้มีการเข้าถึงที่จำเป็นเพื่อฆ่ากระบวนการลองว่ามันเป็นด้วยrootsudo

(โดยวิธีkill -KILLนั้นเหมือนกับที่ได้รับความนิยมอย่างกว้างขวางkill -9ฉันแนะนำkill -KILLเพราะSIGKILLไม่รับประกันว่าจะมี9หมายเลขสัญญาณในทุกแพลตฟอร์มมันใช้งานได้กับ x86 แต่นั่นไม่ได้หมายความว่ามันจะต้องใช้งานได้ทุกที่ในวิธีนี้kill -KILLมีแนวโน้มที่จะจบกระบวนการได้สำเร็จมากกว่าkill -9แต่จะเทียบเท่ากับ x86 ดังนั้นคุณสามารถใช้งานได้ที่นี่หากคุณต้องการ)

หากคุณรู้ว่าไม่มีกระบวนการอื่นที่มีชื่อเดียวกับที่คุณต้องการฆ่าคุณสามารถใช้killallแทนkillและชื่อของกระบวนการแทนหมายเลขกระบวนการ

กระบวนการผูกขาดทรัพยากรซีพียู

หากกระบวนการวิ่งหรือใกล้มากลำดับความสำคัญสูงสุด (หรือให้รัฐมันมากขึ้นอย่างถูกต้องหรือใกล้ต่ำที่สุดความดี ) มันอาจจะทำให้อินเตอร์เฟซผู้ใช้แบบกราฟิกของคุณอย่างสมบูรณ์หรือใกล้สมบูรณ์ไม่ตอบสนอง อย่างไรก็ตามในสถานการณ์นี้คุณอาจไม่สามารถเปลี่ยนเป็นคอนโซลเสมือนและเรียกใช้คำสั่ง (หรืออาจรีบูต)

หากกระบวนการหรือการรวมกันของกระบวนการทำงานในระดับความสำคัญปกติหรือระดับสูงปานกลางทำให้เครื่องของคุณช้าลงคุณควรจะสามารถฆ่าพวกมันได้โดยใช้เทคนิคในส่วนด้านบน แต่หากพวกเขาเป็นโปรแกรมกราฟิกคุณสามารถฆ่าพวกเขาได้โดยคลิกที่ปุ่มปิดบนหน้าต่างของพวกเขา - สภาพแวดล้อมเดสก์ท็อปจะให้ตัวเลือกในการฆ่าพวกเขาหากพวกเขาไม่ตอบสนอง หากยังไม่สามารถทำงานของหลักสูตรที่คุณสามารถ (เกือบ) kill -KILLเสมอฆ่าพวกเขาด้วย

ปัญหา I / O

Buggy I / Oอาจทำให้เกิดการไม่ตอบสนองเป็นเวลานาน ซึ่งอาจเกิดจากข้อผิดพลาดของเคอร์เนลและ / หรือไดรเวอร์ buggy วิธีแก้ปัญหาบางส่วนคือการหลีกเลี่ยงการอ่านและ / หรือการเขียนที่หนักและพร้อมกัน (ตัวอย่างเช่นอย่าคัดลอกไฟล์ขนาดใหญ่สองไฟล์พร้อมกันในกระบวนการคัดลอกพร้อมกันสองกระบวนการอย่าคัดลอกไฟล์ขนาดใหญ่ในขณะที่ดูวิดีโอ HD หรือติดตั้ง ระบบปฏิบัติการในเครื่องเสมือน)

เห็นได้ชัดว่าไม่น่าพอใจและทางออกที่แท้จริงคือการค้นหาปัญหาและรายงานปัญหา หากคุณไม่ได้ใช้เคอร์เนล mainline จากkernel.orgควรรายงานข้อผิดพลาดเคอร์เนลเทียบกับแพ็คเกจlinuxใน Ubuntu (เนื่องจาก Ubuntu ให้เคอร์เนลรุ่นพิเศษที่รวมแพตช์เฉพาะ distro และรายงานข้อผิดพลาดที่ไม่ได้รับการยืนยันจากเคอร์เนล mainline จะถูกปฏิเสธที่kernel.org ) คุณควรทำสิ่งนี้โดยเรียกใช้ubuntu-bug linux(หรือapport-cli linux) บนเครื่องที่ได้รับผลกระทบ ดูเอกสารการรายงานบั๊กของ Ubuntuก่อน มันอธิบายวิธีการทำอย่างถูกต้อง

ปัญหากราฟิกการ์ด

การล็อก GUI บางอย่างอาจเกิดจากปัญหาการ์ดกราฟิก มีบางสิ่งที่คุณสามารถลองได้เพื่อบรรเทาสิ่งนี้:

  1. ค้นหาเว็บเพื่อดูว่าคนอื่นประสบปัญหาคล้ายกันกับการ์ดวิดีโอเดียวกัน (และ / หรือยี่ห้อและรุ่นของเครื่อง) บน Ubuntu หรือการแจกแจง GNU / Linux อื่น ๆ หรือไม่ อาจมีวิธีแก้ปัญหาเฉพาะเจาะจงมากกว่าที่ฉันสามารถนำเสนอในคำตอบนี้โดยไม่มีข้อมูลเฉพาะเจาะจงมากกว่าคำถามของคุณในปัจจุบัน

  2. ดูว่าคุณสามารถลองใช้ไดรเวอร์วิดีโออื่นได้หรือไม่ คุณสามารถทำได้โดยการตรวจสอบในไดรเวอร์เพิ่มเติม; คุณสามารถค้นหาเว็บเพื่อดูว่ามีไดรเวอร์ Linux สำหรับการ์ดแสดงผลของคุณอยู่ การ์ดแสดงผลส่วนใหญ่คือ Intel, AMD / ATiหรือNvidia (คลิกลิงก์เหล่านั้นเพื่อดูเอกสารประกอบชุมชนเกี่ยวกับการติดตั้งและใช้ไดรเวอร์ที่เป็นกรรมสิทธิ์สำหรับการ์ดเหล่านี้ใน Ubuntu) สำหรับ Intel คุณจะติดกับไดรเวอร์ FOSS ที่มีอยู่ใน Ubuntu ได้ดีที่สุด แต่ยังมีข้อมูลที่เป็นประโยชน์ที่คุณสามารถใช้ได้ ข้อมูลทั่วไปนี้อาจช่วยได้ไม่ว่าคุณจะใช้การ์ดชนิดใด

    หากคุณกำลังใช้ไดรเวอร์ที่เป็นกรรมสิทธิ์คุณสามารถลองใช้ไดรเวอร์ที่เป็นกรรมสิทธิ์อื่น ๆ (เช่นโดยตรงจาก NVidia หรือ AMD / ATi) หรือคุณสามารถลองใช้ไดรเวอร์โอเพ่นซอร์สฟรีแทน

  3. ลองเลือกการเข้าสู่ระบบกราฟิกประเภทเซสชั่นที่ไม่ต้องใช้ / การเร่งการใช้งานกราฟิก ในการทำเช่นนี้ให้ออกจากระบบและบนหน้าจอเข้าสู่ระบบแบบกราฟิกให้คลิกที่โลโก้ Ubuntu หรือไอคอนรูปเฟืองใกล้กับชื่อเข้าสู่ระบบของคุณ เมนูแบบเลื่อนลงจะปรากฏขึ้น เปลี่ยนการเลือกจากอูบุนตูไปอูบุนตู 2D นี้จะทำให้คุณใช้ความสามัคคี 2Dแทนความสามัคคี (ถ้าคุณใช้GNOME ShellคุณสามารถเลือกGNOME Fallback / GNOME Classicแทนได้) หากมีข้อสงสัยและมีตัวเลือกที่ระบุว่า "ไม่มีผลกระทบ" ให้เลือกสิ่งที่น่าจะปลอดภัยที่สุด

    คำถามนี้มีข้อมูลเพิ่มเติมเกี่ยวกับส่วนต่อประสานกราฟิกแบบต่างๆที่คุณสามารถเลือกได้ใน Ubuntu

  4. ใน Ubuntu รุ่นใหม่กว่าคุณสามารถเลือกระหว่าง X.org และ Wayland บนหน้าจอเข้าสู่ระบบ ไม่ว่าคุณจะใช้อะไรอยู่ลองใช้อีกอัน บางครั้งปัญหาเกี่ยวกับ Wayland สามารถแก้ไขได้โดยใช้ X.org หรือในทางกลับกัน

  5. รายงานความผิดพลาด.

หวังว่าข้อมูลข้างต้นได้นำเสนอข้อมูลทั่วไปเกี่ยวกับสิ่งที่อาจทำให้เกิดปัญหาประเภทนี้ นอกจากนี้ควรให้ความกระจ่างว่าข้อมูลประเภทใดที่อาจเป็นประโยชน์สำหรับคุณในการเพิ่มคำถามของคุณ (ขึ้นอยู่กับรายละเอียดของปัญหา) เพื่อให้สามารถได้รับคำตอบที่ดียิ่งขึ้น (หรือเพื่อปรับปรุงคำตอบนี้พร้อมข้อมูลเพิ่มเติมเฉพาะสำหรับสถานการณ์ของคุณ)


1
เคล็ดลับที่ทำได้ดีมากในการแก้ไขปัญหาแฮงค์
Charac เย็น

หากแป้นพิมพ์หยุดตอบสนองจะไม่สามารถใช้ Ctrl + Alt + FN
szx

6

ใช่วิธีที่ง่ายที่สุดในการเก็บเรื่องนี้คือเปิดใช้งานคีย์เพื่อฆ่าเซิร์ฟเวอร์ Xorg และเปิดใช้งานเซสชัน X อีกครั้ง

หากต้องการเปิดใช้งานสิ่งนี้ให้เปิดการตั้งค่าระบบ -> ตัวเลือกเค้าโครงแป้นพิมพ์ (หรือใช้ keyboardคำสั่งในอินเทอร์เฟซ Unity กดปุ่มAltF2) และเลือกตัวเลือกนี้:

Ctrl + Alt + Backspace

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้นเมื่อแฮงค์ Hit CtrlAltBackspaceจะฆ่าเซิร์ฟเวอร์ X และ lightdm จะเปิดใช้อินเทอร์เฟซการเข้าสู่ระบบอีกครั้ง


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