Как убить процесс, который 'sudo kill -9' не может убить без перезагрузки?

20

Я пытался убить процесс:

  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:~$ 

После предложений я попробовал:

 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:~$ 
Сэм
источник

Ответы:

24

Несколько моментов:

  • killall принимает только имена процессов, поэтому ваш синтаксис был неверным.

  • [bracketed]процессы - это потоки ядра, которые не будут реагировать на то, что будут убиты такой программой, как пользовательское пространство kill.

  • Нечто подобное mountждет, пока ядро ​​ответит. Он должен смонтировать, а затем закрыть. Единственный раз, когда он зависает, это когда гора не может пройти, AFAIK. Попробуйте использовать -vпараметры монтирования, чтобы увидеть точную проблему.

Я думаю, что вы хотите попробовать, sudo umount -f /media/634bad56-5543-40fe-843b-cd31f4a95dba_и если это не сработает sudo umount -l /media/634bad56-5543-40fe-843b-cd31f4a95dba_. Я надеюсь, что ядро ​​увидит размонтирование и остановит предыдущую операцию монтирования.

Также, если это ваше монтирование /etc/fstab, вы можете рассмотреть возможность использования UUID вместо " /dev/sdxn" устройств, которые могут менять имя между загрузками.

Оли
источник
Я обновил оригинальный пост. Проблема все еще там. Когда я должен использовать UUID?
Сэм
11

Процесс находится в непрерывном сне и поэтому не может быть убит.

Из википедии

Непрерывное состояние сна - это состояние сна, которое не будет обрабатывать сигнал сразу. Он будет активирован только в результате доступности ожидаемого ресурса или после истечения времени ожидания во время этого ожидания (если указано при переводе в спящий режим). Он в основном используется драйверами устройств, ожидающими дискового или сетевого ввода-вывода (ввода / вывода). Когда процесс непрерывно спит, сигналы, накопленные во время сна, будут замечены, когда процесс вернется из системного вызова или прерывания.

Поэтому я бы проверил жесткий диск и раздел на наличие ошибок .

организовать
источник
2
Я знаю, что на жестком диске есть ошибки, но как убить программу, пытаясь использовать ее, которая вызывает вечный цикл.
Сэм
2

Я считаю, что процессы в скобках - это процессы, которые запускаются потоками ядра и поэтому имеют решающее значение для функционирования системы. В этом случае jbd2 - это блочное блочное устройство, которое требуется, если вы хотите использовать свой жесткий диск.

Почему вы хотите убить этот процесс?

mfisch
источник
1
Потому что этот процесс создан мной. Я использую дисковый инструмент для монтирования жесткого диска, но кажется, что монтируется навсегда. Я хочу остановить этот процесс и еще раз попробовать исправить этот жесткий диск. Я не могу перезагрузиться, потому что мой / раздел также кажется сломанным. Я использую много времени, чтобы загрузиться в свою Ubuntu.
Сэм
1
Процесс не был создан вами - дисковый инструмент инициировал блочное устройство, которое, как уже упоминали другие, ожидает какой-то тайм-аут
Рори Олсоп
2
информация в ответе в корне неверна: заключенные в скобки процессы - это потоки ядра, не запускаемые init.
Дэвид Шмитт
Дэвид, я отредактирую, чтобы исправить это.
mfisch