Jak zabić proces, w którym "sudo kill -9" nie może zabić bez restartu?

20

Próbowałem zabić proces:

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

Po sugestiach próbowałem:

 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:~$ 
    
zadawane sam 12.12.2011, 07:23
źródło

3 odpowiedzi

24

Kilka punktów:

  • killall przyjmuje tylko nazwy procesów, więc twoja składnia była niepoprawna.

  • [bracketed] procesów to wątki jądra, które nie będą reagować na zabicie przez program przestrzeni użytkownika, taki jak kill .

  • Coś jak mount czeka na odpowiedź jądra. Powinien on zostać zamontowany, a następnie zamknięty. Jedyny moment, w którym się zawiesza, to sytuacja, w której mount nie może przejść, AFAIK. Rozważ użycie -v w opcjach montowania, aby zobaczyć dokładny problem.

Myślę, że chcesz wypróbować sudo umount -f /media/634bad56-5543-40fe-843b-cd31f4a95dba_ , a jeśli to nie zadziała: sudo umount -l /media/634bad56-5543-40fe-843b-cd31f4a95dba_ . Mam nadzieję, że jądro będzie widzieć odmontowanie i zatrzyma poprzednią operację montowania.

Jeśli jest to mocowanie z /etc/fstab , możesz rozważyć używanie UUID zamiast " /dev/sdxn "urządzenia, które może zmienić nazwę między butami.

    
odpowiedział Oli 12.12.2011, 09:34
źródło
11

Proces jest w trybie nieprzerwanego snu i dlatego nie można go zabić.

Od wikipedia

  

Stan bezprzerwowego trybu uśpienia to stan uśpienia, który nie będzie działał   sygnał od razu. Obudzi się tylko w wyniku oczekiwania   zasoby stają się dostępne lub po przekroczeniu limitu czasu   wait (jeśli określono, gdy uśpiony). Jest najczęściej używany przez urządzenie   sterowniki oczekujące na dysk lub sieć IO (wejście / wyjście). Kiedy   proces śpi nieprzerwanie, sygnały zgromadzone podczas   sen zostanie zauważony, gdy proces powróci z wywołania systemowego lub   pułapka.

Sprawdzam więc twardy dysk i partycję pod kątem błędów .

    
odpowiedział arrange 12.12.2011, 09:41
źródło
2

Uważam, że procesy w nawiasach to te, które są uruchamiane przez wątki jądra i jako takie mają krytyczne znaczenie dla funkcji systemu. W tym przypadku jbd2 jest urządzeniem blokującym księgowanie, które jest wymagane, jeśli chcesz użyć dysku twardego.

Dlaczego chcesz zabić ten proces?

    
odpowiedział mfisch 12.12.2011, 07:38
źródło

Przeczytaj inne pytania na temat tagów