Come terminare il processo che "sudo kill -9" non può uccidere senza riavviare?


20

Ho cercato di terminare il processo:

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

Dopo suggerimenti ho provato:

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

Risposte:


24

Alcuni punti:

  • killall accetta solo i nomi dei processi, quindi la sintassi non è corretta.

  • [bracketed] i processi sono thread del kernel che non risponderanno all'uccisione di un programma di tipo userspace kill .

  • Qualcosa del genere mountsta aspettando che il kernel risponda. Dovrebbe montare e quindi chiudere. L'unica volta che si blocca è quando la montatura non può passare, AFAIK. Prendi -vin considerazione l'utilizzo delle opzioni di montaggio per vedere il problema esatto.

Penso che tu voglia provare sudo umount -f /media/634bad56-5543-40fe-843b-cd31f4a95dba_e se non funziona:sudo umount -l /media/634bad56-5543-40fe-843b-cd31f4a95dba_ . Spero che il kernel visualizzi lo smontaggio e fermi l'operazione di mount precedente.

Anche se questo è un mount dal tuo /etc/fstab, potresti prendere in considerazione l' uso di UUID invece di " /dev/sdxn" dispositivi che possono cambiare il nome tra gli stivali.


Ho aggiornato il post originale. Il problema è ancora lì. Quando dovrei usare gli UUID?
sam,

11

Il processo è in un sonno ininterrotto e quindi non può essere ucciso.

Da Wikipedia

Uno stato di sonno ininterrotto è uno stato di sonno che non gestirà immediatamente un segnale. Si attiverà solo a seguito della disponibilità di una risorsa attesa o dopo che si verificherà un timeout durante l'attesa (se specificato quando messo in sospensione). Viene utilizzato principalmente dai driver di dispositivo in attesa di I / O su disco o rete (input / output). Quando il processo si interrompe ininterrottamente, i segnali accumulati durante il sonno verranno notati quando il processo ritorna dalla chiamata di sistema o dalla trap.

Quindi vorrei controllare il disco rigido e la partizione per errori .


2
So che il disco rigido ha errori, ma come uccidere il programma cercando di usarlo che causa un ciclo per sempre.
sam

2

Credo che i processi tra parentesi siano quelli che vengono avviati dai thread del kernel e come tali sono fondamentali per la funzione di sistema. In questo caso, jbd2 è il dispositivo di blocco journaling, necessario se si desidera utilizzare il disco rigido.

Perché vuoi uccidere questo processo?


1
Perché quel processo è stato creato da me. Uso uno strumento disco per montare un disco rigido ma sembra montare per sempre. Voglio interrompere quel processo e riprovare un altro per riparare quel disco rigido. Non riesco a riavviare perché anche la mia / partizione sembra essere rotta. Uso molto tempo per avviare Ubuntu.
sam,

1
Il processo non è stato creato da te - lo strumento disco ha avviato il dispositivo a blocchi che, come altri hanno già detto, sta aspettando un timeout di qualche tipo
Rory Alsop,

2
le informazioni nella risposta sono fondamentalmente errate: i processi tra parentesi sono thread del kernel, non avviati da init.
David Schmitt,

David, lo modificherò per sistemarlo.
mfisch,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.