Comment tuer le processus que 'sudo kill -9' ne peut pas tuer sans redémarrer?

20

J'ai essayé de tuer le processus:

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

Après des suggestions, j'ai essayé:

 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
la source

Réponses:

24

Quelques points:

  • killall ne prend que les noms de processus, donc votre syntaxe était incorrecte.

  • [bracketed]les processus sont des threads du noyau qui ne vont pas répondre à la mort d'un programme de type espace utilisateur kill.

  • Quelque chose comme mountattend le noyau pour répondre. Il doit monter puis se fermer. La seule fois où il se bloque, c'est quand la monture ne peut pas passer, AFAIK. Pensez à utiliser -vdans vos options de montage pour voir le problème exact.

Je pense que vous voulez essayer sudo umount -f /media/634bad56-5543-40fe-843b-cd31f4a95dba_et si cela ne fonctionne pas: sudo umount -l /media/634bad56-5543-40fe-843b-cd31f4a95dba_. J'espère que le noyau verra le démontage et arrêtera l'opération de montage précédente.

De plus, s'il s'agit d'un montage à partir de votre /etc/fstab, vous pouvez envisager d' utiliser des UUID au lieu de " /dev/sdxn" périphériques qui peuvent changer de nom entre les initialisations.

Oli
la source
J'ai mis à jour le message d'origine. Le problème est toujours là. Quand dois-je utiliser des UUID?
sam
11

Le processus est dans un sommeil ininterrompu et ne peut donc pas être tué.

De wikipedia

Un état de sommeil sans interruption est un état de sommeil qui ne traitera pas immédiatement un signal. Il ne se réveillera qu'à la suite de la disponibilité d'une ressource attendue ou après un délai d'expiration pendant cette attente (si spécifié lors de la mise en veille). Il est principalement utilisé par les pilotes de périphériques en attente d'E / S disque ou réseau (entrée / sortie). Lorsque le processus est en sommeil sans interruption, les signaux accumulés pendant le sommeil seront remarqués lorsque le processus reviendra de l'appel système ou de l'interruption.

Je voudrais donc vérifier le disque dur et la partition pour les erreurs .

organiser
la source
2
Je sais que le disque dur contient des erreurs, mais comment tuer le programme en essayant de l'utiliser qui provoque une boucle permanente.
sam
2

Je crois que les processus entre parenthèses sont ceux qui sont démarrés par les threads du noyau et en tant que tels sont essentiels au fonctionnement du système. Dans ce cas, jbd2 est le périphérique de bloc de journalisation, qui est requis si vous souhaitez utiliser votre disque dur.

Pourquoi voulez-vous tuer ce processus?

mfisch
la source
1
Parce que ce processus est créé par moi. J'utilise un outil de disque pour monter un disque dur mais semble monter pour toujours. Je veux arrêter ce processus et réessayer un autre pour réparer ce disque dur. Je ne peux pas redémarrer car ma partition / semble également être cassée. J'utilise beaucoup de temps pour démarrer dans mon ubuntu.
sam
1
Le processus n'a pas été créé par vous - l'outil disque a lancé le périphérique de bloc qui, comme d'autres l'ont mentionné, attend un certain délai d'attente
Rory Alsop
2
les informations dans la réponse sont fondamentalement erronées: les processus entre crochets sont des threads du noyau, non lancés par init.
David Schmitt
David, je vais modifier pour résoudre ce problème.
mfisch