该死的D进程
2019-11-20 本文已影响0人
退休码农飞伯德
图片来自互联网
最近在服务器上做ceph测试,创建OSD的时候竟然卡死了!WTF!一顿猛如虎的操作之后(Ctrl-C、Ctrl-Z,甚至是kill -9),都没法杀死这该死的D进程。下面简单普及一下什么是D进程。
在Linux或Unix系统中,基本的进程状态有S、R、D、Z、T、X:
- R (task_running) : 可执行状态
- S (task_interruptible): 可中断的睡眠状态
- D (task_uninterruptible): 不可中断的睡眠状态
- T(task_stopped or task_traced):暂停状态或跟踪状态
- Z (task_dead - exit_zombie):退出状态,进程成为僵尸进程
- X (task_dead - exit_dead):退出状态,进程即将被销毁
D进程的状态刚好和S进程相反,S进程虽然睡眠,但是可中断,也就是可以被杀死;但D进程却无法被杀死,唯一的办法就是重启 重启 重启。
我用ps
命令查看了所有的D进程,真的是令人恶心:
ps aux | grep " D "
结果如下图:
D进程我一看日期,怎么好多9月份的进程,而且还这么多,这是哪位大佬的杰作!
请示过领导之后,成功reboot系统,所有的D进程都被杀死。整个世界清净了!
参考资料
- Linux进程状态说明:http://lionheartwang.github.io/blog/2018/06/05/linuxjin-cheng-zhuang-tai-shuo-ming/
- Processes in D state:https://wiki.openvz.org/Processes_in_D_state
- Linux 进程的 Uninterruptible sleep(D) 状态:https://blog.xupeng.me/2009/07/09/linux-uninterruptible-sleep-state/