Làm cách nào để giết tiến trình 'sudo kill -9' không thể giết mà không khởi động lại?


20

Tôi đã cố gắng để giết quá trình:

  sam@sam-desktop:~$ ps -aux|grep sda
  Warning: bad ps syntax, perhaps a bogus '-'? See       http://procps.sf.net/faq.html
  root      2898  0.0  0.0      0     0 ?        S    11:39   0:00       [jbd2/sda6-8]
  root      2899  0.0  0.0   2300   716 ?        D    11:39   0:00       mount -t ext4 -o uhelper=udisks,nodev,nosuid /dev/sda6       /media/634bad56-5543-40fe-843b-cd31f4a95dba_
  sam       2973  0.0  0.0   3328   876 pts/0    S+   14:13   0:00       grep --color=auto sda
  sam@sam-desktop:~$ sudo kill -9 2898
  sam@sam-desktop:~$ sudo kill -9 2899
  sam@sam-desktop:~$ sudo killall -9 2898
  2898: no process found
  sam@sam-desktop:~$ sudo killall -9 2899
  2899: no process found
  sam@sam-desktop:~$ ps -aux|grep sda
  Warning: bad ps syntax, perhaps a bogus '-'? See       http://procps.sf.net/faq.html
  root      2898  0.0  0.0      0     0 ?        S    11:39   0:00       [jbd2/sda6-8]
  root      2899  0.0  0.0   2300   716 ?        D    11:39   0:00       mount -t ext4 -o uhelper=udisks,nodev,nosuid /dev/sda6       /media/634bad56-5543-40fe-843b-cd31f4a95dba_
  sam       2987  0.0  0.0   3328   872 pts/0    S+   14:22   0:00       grep --color=auto sda
  sam@sam-desktop:~$ 

Sau những gợi ý tôi đã thử:

 sam@sam-desktop:~$ sudo umount -f      /media/634bad56-5543-40fe-843b-cd31f4a95dba_
 umount2: Invalid argument
 umount: /media/634bad56-5543-40fe-843b-cd31f4a95dba_: not mounted
 sam@sam-desktop:~$ sudo umount -l      /media/634bad56-5543-40fe-843b-cd31f4a95dba_
 umount: /media/634bad56-5543-40fe-843b-cd31f4a95dba_: not mounted
 sam@sam-desktop:~$ 

Câu trả lời:


24

Một vài điểm:

  • killall chỉ lấy tên quá trình để cú pháp của bạn không chính xác.

  • [bracketed]các quy trình là các luồng nhân sẽ không phản ứng với việc bị giết bởi một chương trình không gian người dùng như thế nào kill.

  • Một cái gì đó giống như mountđang chờ kernel trả lời. Nó nên gắn kết và sau đó đóng lại. Lần duy nhất nó bị treo là khi thú cưỡi không thể đi qua, AFAIK. Xem xét sử dụng -vtrong tùy chọn gắn kết của bạn để xem vấn đề chính xác.

Tôi nghĩ bạn muốn thử sudo umount -f /media/634bad56-5543-40fe-843b-cd31f4a95dba_và nếu điều đó không hiệu quả : sudo umount -l /media/634bad56-5543-40fe-843b-cd31f4a95dba_. Tôi hy vọng kernel sẽ thấy unmount và sẽ dừng hoạt động mount trước đó.

Ngoài ra, nếu đây là giá treo từ bạn /etc/fstab, bạn có thể muốn xem xét sử dụng UUID thay vì các /dev/sdxnthiết bị "" có thể thay đổi tên giữa các bốt.


Tôi đã cập nhật bài viết gốc. Vấn đề vẫn còn đó. Khi nào tôi nên sử dụng UUID?
sam

11

Quá trình là trong một giấc ngủ không bị gián đoạn và do đó không thể bị giết.

Từ wikipedia

Trạng thái ngủ không bị gián đoạn là trạng thái ngủ sẽ không xử lý tín hiệu ngay lập tức. Nó sẽ chỉ thức dậy do tài nguyên chờ đợi trở nên khả dụng hoặc sau khi hết thời gian chờ trong thời gian chờ đó (nếu được chỉ định khi đưa vào chế độ ngủ). Nó chủ yếu được sử dụng bởi trình điều khiển thiết bị đang chờ đĩa IO hoặc mạng (đầu vào / đầu ra). Khi quá trình đang ngủ liên tục, các tín hiệu tích lũy trong khi ngủ sẽ được chú ý khi quá trình quay trở lại từ cuộc gọi hệ thống hoặc bẫy.

Vì vậy, tôi sẽ kiểm tra đĩa cứng và phân vùng cho lỗi .


2
Tôi biết rằng đĩa cứng có lỗi, nhưng làm thế nào để giết chương trình cố gắng sử dụng nó gây ra một vòng lặp mãi mãi.
sam

2

Tôi tin rằng các quy trình trong ngoặc là những quy trình được bắt đầu bởi các luồng nhân và như vậy rất quan trọng đối với chức năng hệ thống. Trong trường hợp này, jbd2 là thiết bị chặn ghi nhật ký, được yêu cầu nếu bạn muốn sử dụng ổ cứng của mình.

Tại sao bạn muốn giết quá trình này?


1
Bởi vì quá trình đó được tạo ra bởi tôi. Tôi sử dụng một công cụ đĩa để gắn một đĩa cứng nhưng dường như gắn kết mãi mãi. Tôi muốn dừng quá trình đó và thử lại cái khác để sửa đĩa cứng đó. Tôi không thể khởi động lại vì / phân vùng của tôi dường như cũng bị hỏng. Tôi sử dụng rất nhiều thời gian để khởi động vào Ubuntu của mình.
sam

1
Quá trình không phải do bạn tạo ra - công cụ đĩa đã khởi tạo thiết bị khối mà như những người khác đã đề cập đang chờ thời gian chờ nào đó
Rory Alsop

2
thông tin trong câu trả lời là sai về cơ bản: các quy trình được đặt trong ngoặc là các luồng nhân, không được khởi động bởi init.
David Schmitt

David, tôi sẽ chỉnh sửa để sửa nó.
mfisch
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.