Làm thế nào để xác định và tiêu diệt quá trình treo, khi hệ thống bị treo và phản ứng chậm với đầu vào của người dùng?


24

Gần đây khi tôi cố gắng mở video bằng VLC, hệ thống của tôi bị chậm lại, webbrowser ứng dụng mở, VLC và filemanager và những người khác không phản ứng nữa. Con chuột chỉ phản ứng vẫn rất chậm.

Trên một máy tính windows, tôi sẽ nhấn một keycombi CTRL-ALT-DEL để mở taskmanager, tìm kiếm quá trình gây ra treo và giết nó.

Vì tôi khá mới với việc sử dụng linux, tôi đã không tìm ra cách thực hành tốt nhất để giải quyết tình huống như vậy trong Ubuntu.

Cách nhanh chóng và hiệu quả nào bạn muốn giới thiệu để xác định quy trình treo và đóng nó, khi hệ thống đã phản ứng rất chậm với đầu vào của người dùng?

Câu trả lời:


32

Có hai cách chính để xác định các quy trình treo. Một là thông qua GUI màn hình hệ thống và một là thông qua topdòng lệnh.

Giám sát hệ thống

Điều này có thể được tìm thấy trong Hệ thống> Quản trị

tài khoản

Bạn cũng có thể tạo một phím tắt cho điều này trong bài viết này .

Khi GUI khởi chạy, bạn có thể chọn tab Quy trình sẽ liệt kê tất cả các quy trình đang chạy. Sắp xếp theo cột CPU để tìm nhiệm vụ chuyên sâu nhất về CPU

CPU

Cuối cùng, bạn có thể nhấp chuột phải vào nhiệm vụ đó và chọn kết thúc nó, dừng nó hoặc giết nó. Giết nó sẽ ngay lập tức dừng lại và loại bỏ quá trình đó khỏi hệ thống.

giết chết

Dòng lệnh

Nếu bạn có một thiết bị đầu cuối mở, bạn chỉ cần gõ topnó sẽ liệt kê tất cả các quy trình đang chạy tương tự như quy trình của tab Quy trình trong GUI

hàng đầu

Trong đầu trang, CPU được sắp xếp theo mặc định - vì vậy, hầu hết các tác vụ chuyên sâu về CPU đều ở trên cùng. Bất cứ lúc nào bạn có thể nhấn thư kđể giết một quá trình

k

Đơn giản chỉ cần gõ PID của quá trình bạn muốn giết và nhấn enter. Nó sẽ yêu cầu tín hiệu Kill để gửi. Để tiêu diệt quá trình độc đáo, hãy sử dụng 15 mặc định - để tiêu diệt ngay lập tức "Đừng vượt qua, đừng thu 200 đô la", hãy sử dụng 9.

sigkill

Quá trình sau đó sẽ được chấm dứt.

Nếu bạn đang gặp giao diện chậm chạp bạn có thể thử để SSH nhập từ xa nếu được kích hoạt - hoặc chuyển sang một giao diện điều khiển ảo qua Ctrl+ Alt+ F#ở đâu F#là một Function Key (F3, F4, F5, vv). Để trở về môi trường Desktop, hãy chuyển sang F7 hoặc F8 tùy thuộc vào phiên bản Ubuntu của bạn.


5
Câu trả lời chính xác. Tôi thường gán phím tắt CTRL + ESC cho System Monitor. Điều này cho tôi một truy cập nhanh để giết quá trình.
Javier Rivera

@Marco Ceppi: hình ảnh đã biến mất ở đâu?
enzotib

@enzotib Bài đăng đã được cập nhật
Marco Ceppi

1
+1 cho Giám sát hệ thống. Nó có thể giết / dừng quá trình VLC treo, điều mà htop không thể làm được.
malisokan

@malisokan Bạn có chắc chắn htopkhông thể làm điều đó? Bạn có thể gửi SIGKILL để tiêu diệt mọi quy trình treo mà bạn có quyền.
val nói Phục hồi lại

4

Thêm System Monitorapplet vào bảng điều khiển của bạn ( nhấp chuột phải vào bảng điều khiển, chọnAdd to Pannel và tìm kiếm System Monitor) và nhấp chuột phải vào để mở ứng dụng System Monitor.

Bạn có thể khởi chạy ứng dụng System Monitor bằng cách nhấn Alt+F2 và khởi động chương trình gnome-system-monitor.

Chuyển đến tab "Quy trình" và nhấp chuột phải vào ứng dụng bạn muốn giết .


3

Hầu hết đã nói (tôi thích câu trả lời của Marco Ceppi) nhưng cũng có một applet "Force Quit" mà bạn có thể thêm vào Bảng điều khiển Gnome của mình. Nhấp chuột phải vào bảng điều khiển và chọn "Thêm vào bảng ...":

văn bản thay thế

Điều này cho phép bạn thoát khỏi ứng dụng treo bằng cách nhấp vào cửa sổ của nó. Rất nhanh và hiệu quả.


Khi chạy Unity trong 11.04 tất nhiên ứng dụng này sẽ không còn khả dụng. Có một dự án thay thế Indicator-Forceclose nhưng nó không được bao gồm trong kho.

Ngoài ra, chúng tôi có thể chạy xkilltừ một thiết bị đầu cuối.


Nó chỉ phá hủy cửa sổ hoặc cũng giết quá trình?
val nói Phục hồi lại

@val nó giết quá trình tạo ra cửa sổ.
Takkat

Chỉ cần thử nghiệm: không. Tôi đã tạo một chương trình treo bên trong cuộc gọi lại GTK và giết nó bằng xkill. Cửa sổ biến mất, nhưng chương trình tiếp tục chạy (hoặc treo nếu bạn thích). Vì vậy, câu trả lời là không, nó có thể không giết chương trình nếu nó bị kẹt nghiêm trọng.
val nói Phục hồi lại

@val tự nhiên sau khi chương trình của bạn đã gọi một quy trình khác để tạo một cửa sổ xkillsẽ chỉ giết quá trình bổ sung này. Điều này đặc biệt quan trọng để biết đối với các chương trình chạy mà không có máy chủ X nhưng hãy gọi X để mở cửa sổ. Rõ ràng, không thể giết bất kỳ chương trình nào như vậy từ máy chủ X.
Takkat

Chương trình của tôi đã không gọi một quy trình khác cho nó. Tôi đã tạo một chương trình giống như bất kỳ ứng dụng GTK nào ngoài đó và làm cho nó bị treo. xkillkhông ảnh hưởng đến các quy trình như vậy (GTK sẽ gây ra thoát nếu sau đó tôi thoát "treo" và làm cho nó xử lý mất cửa sổ). Cuộc gọi lại GTK không liên quan gì đến đa xử lý.
val nói Phục hồi lại
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.