Partprobe не может быть убит

Я пытаюсь настроить программный RAID 10 на моем сервере CentOS. Во время теста я отключил устройство, чтобы убедиться, что моя файловая система все еще работает.

Когда я запустил partprobe, сервер не отвечал, я не смог получить приглашение, поэтому я закрыл сеанс ssh и снова открыл новый.

Теперь у меня есть это:

# ps aux | grep partprobe 
root   6319  0.0  0.0  21704   916 ?        D07:40   0:00 partprobe

Я пробовал бегать kill -9 6319, но это не работает!!

# lsof /dev/md10
COMMAND    PID USER   FD   TYPE DEVICE SIZE NODE NAME
partprobe 6319 root    4u   BLK   9,10      8708 /dev/md10

редактировать:

root      6212  0.0  0.0  71800   752 ?        D    07:36   0:00 umount /var/lib/mysql/
root      6319  0.0  0.0  21704   916 ?        D    07:40   0:00 partprobe
root      6424  0.0  0.0  71812   856 ?        D    07:47   0:00 mount /dev/md10 /var/lib/mysql/
root      6552  0.0  0.0  71812   860 ?        D    07:56   0:00 mount /dev/md10 /var/lib/mysql/
root      6583  0.0  0.0   5888   668 ?        D    07:57   0:00 shutdown -r 0 w
root      6663  0.0  0.0  71812   856 ?        D    08:02   0:00 mount /dev/md10 /var/lib/mysql/
root      6779  0.0  0.0   5888   668 ?        D    08:08   0:00 shutdown -r 0 w
root      7285  0.0  0.0   5888   668 ?        D    08:54   0:00 shutdown -r 0 w
root      7325  0.0  0.0  90108  3364 ?        Ss   08:59   0:00 sshd: root@pts/8
root      7328  0.0  0.0  66088  1608 pts/8    Ss   09:00   0:00 -bash
root      8332  0.0  0.0  65612   964 pts/8    R+   10:49   0:00 ps aux

Не могли бы вы мне помочь?

2 ответа

Решение

Из Вики: (прочитайте последнее предложение)

Uninterruptible sleep

An uninterruptible sleep state is a sleep state that cannot handle a signal (such as waiting for disk or network IO (input/output)).    
When the process is sleeping uninterruptibly, the signal will be noticed when the process returns from the system call or trap.    
In Unix-like systems the command 'ps -l' uses code "D" for the uninterruptible sleep state of a process.    
Such processes cannot be killed even with 'kill -9' command, and the only nonsophisticated way to get rid of them is to reboot the system.

Где это говорит D07:40это на самом деле два поля. D означает, что он находится в ожидании дискового ввода-вывода. Вы не можете убить процесс в этом состоянии. Сначала нужно подождать и завершить операцию ввода-вывода.

Другие вопросы по тегам