Como matar o processo que 'sudo kill -9' não pode matar sem a reinicialização?

20

Eu tentei matar o 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:~$ 

Após sugestões, tentei:

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

Respostas:

24

Alguns pontos:

  • killall leva apenas nomes de processos, portanto sua sintaxe estava incorreta.

  • [bracketed]processos são threads do kernel que não vão responder a serem mortos por um programa do espaço do usuário kill.

  • Algo como mountestá esperando o kernel responder. Deve montar e depois fechar. A única vez que ele trava é quando a montagem não pode passar, AFAIK. Considere usar -vem suas opções de montagem para ver o problema exato.

Eu acho que você quer tentar sudo umount -f /media/634bad56-5543-40fe-843b-cd31f4a95dba_e se isso não funcionar: sudo umount -l /media/634bad56-5543-40fe-843b-cd31f4a95dba_. Espero que o kernel veja a desmontagem e interrompa a operação de montagem anterior.

Além disso, se for uma montagem sua /etc/fstab, convém usar UUIDs em vez de " /dev/sdxn" dispositivos que podem mudar o nome entre as botas.

Oli
fonte
Eu atualizei a postagem original. O problema ainda está aí. Quando devo usar UUIDs?
sam
11

O processo está em um sono ininterrupto e, portanto, não pode ser eliminado.

Da wikipedia

Um estado de suspensão ininterrupta é um estado de suspensão que não processa um sinal imediatamente. Ele será ativado apenas como resultado da disponibilidade de um recurso aguardado ou após um tempo limite durante essa espera (se especificado quando colocado no modo de suspensão). É usado principalmente por drivers de dispositivo que aguardam E / S de disco ou rede (entrada / saída). Quando o processo dorme ininterruptamente, os sinais acumulados durante o sono serão notados quando o processo retornar da chamada ou interceptação do sistema.

Então, eu verificaria o disco rígido e a partição quanto a erros .

organizar
fonte
2
Eu sei que o disco rígido tem erros, mas como matar o programa tentando usá-lo que causa um loop para sempre.
sam
2

Acredito que os processos entre colchetes são iniciados por threads do kernel e, como tal, são críticos para a função do sistema. Nesse caso, jbd2 é o dispositivo do bloco de registro no diário, necessário para usar o disco rígido.

Por que você quer matar esse processo?

mfisch
fonte
11
Porque esse processo é criado por mim. Eu uso uma ferramenta de disco para montar um disco rígido, mas parece montar para sempre. Quero interromper esse processo e tentar novamente outro para corrigir o disco rígido. Não consigo reiniciar porque minha partição / também parece estar quebrada. Eu uso muito tempo para inicializar no meu ubuntu.
sam
11
O processo não foi criado por você - a ferramenta de disco iniciou o dispositivo de bloco que, como outros já mencionados está à espera de um tempo de espera de algum tipo
Rory Alsop
2
as informações na resposta estão fundamentalmente erradas: processos entre colchetes são threads do kernel, não iniciados pelo init.
David Schmitt
David, vou editar para corrigir isso.
Mfisch