linux进程状态D
来源:互联网 发布:国际机票 知乎 编辑:程序博客网 时间:2024/05/18 00:13
本文转自:http://blog.chinaunix.net/uid-20301055-id-2741526.html
运行在KVM虚拟机里的一些进程突然出了问题,这些出了问题的进程无法用kill杀掉,使用ps可以看到这些进程处于D状态:
运行在KVM虚拟机里的一些进程突然出了问题,这些出了问题的进程无法用kill杀掉,使用ps可以看到这些进程处于D状态:
[build@kbuild-john ~]$ ps -a -ubuild -o pid,ppid,stat,command
PID PPID STAT COMMAND
17009 1 Ds -bash
17065 1 D ls --color=tty -al
17577 1 D /usr/java/jdk1.5.0_17/bin/java -Xmx512m -classpath /usr/local/a
17629 1 D /usr/java/jdk1.5.0_17/bin/java -Xmx512m -classpath /usr/local/a
ps 的手册里说D状态是uninterruptible sleep,Linux进程有两种睡眠状态,一种interruptiblesleep,处在这种睡眠状态的进程是可以通过给它发信号来唤醒的,比如发HUP信号给nginx的master进程可以让nginx重新加载配置文件而不需要重新启动nginx进程;另外一种睡眠状态是uninterruptiblesleep,处在这种状态的进程不接受外来的任何信号,这也是为什么之前我无法用kill杀掉这些处于D状态的进程,无论是”kill”, “kill-9″还是”kill -15″,因为它们压根儿就不受这些信号的支配。
进程为什么会被置于uninterruptible sleep状态呢?处于uninterruptiblesleep状态的进程通常是在等待IO,比如磁盘IO,网络IO,其他外设IO,如果进程正在等待的IO在较长的时间内都没有响应,那么就很会不幸地被ps看到了,同时也就意味着很有可能有IO出了问题,可能是外设本身出了故障,也可能是比如挂载的远程文件系统已经不可访问了,我这里遇到的问题就是由down掉的NFS服务器引起的。
正是因为得不到IO的相应,进程才进入了uninterruptible sleep状态,所以要想使进程从uninterruptiblesleep状态恢复,就得使进程等待的IO恢复,比如如果是因为从远程挂载的NFS卷不可访问导致进程进入uninterruptiblesleep状态的,那么可以通过恢复该NFS卷的连接来使进程的IO请求得到满足,除此之外,要想干掉处在D状态进程就只能重启整个Linux系统了。
看到有人说如果要想杀掉D状态的进程,通常可以去杀掉它的父进程(通常是shell,我理解的这种情况是在shell下直接运行的该进程,之后该进程转入了D状态),于是我就照做了,之后就出现了上面的状态:他们的父进程被杀掉了,但是他们的父进程PID都变成了1,也就是init进程,这下可如何是好?此时我这些D状态的进程已经影响到其他一些进程的运行,而已经无法访问的NFS卷又在段时间内无法恢复,那么,只好重新启动了,root不是玉皇大帝,也有无奈的时候。
0 0
- linux进程状态D
- Linux进程状态:D
- linux进程状态D
- Linux杀掉D状态进程
- Linux 进程的 Uninterruptible sleep(D) 状态
- Linux 进程的 Uninterruptible sleep(D) 状态
- Linux如何终止D状态的进程
- Linux 进程的 Uninterruptible sleep(D) 状态
- linux下如何杀掉D状态进程
- Linux 进程的 Uninterruptible sleep(D) 状态
- linux下如何杀掉D状态进程
- [进程管理]Linux进程状态解析之R、S、D
- [linux]Linux进程状态解析之R、S、D
- linux进程状态D和Z的处理
- linux进程状态D和Z的处理
- linux进程状态D和Z的处理
- Linux进程状态解析之R、S、D、T、Z
- linux进程状态D的一种产生原因
- Android之JSON封装与Javascript解析JSON
- android中图片加载的4种途径和加载方法
- 为什么会文不对题
- alter table新增字段操作究竟有何影响?(下篇)
- mysql 左外连接 右外链接 内连接
- linux进程状态D
- 云安全部分概念解析
- 二叉搜索树的第k个结点
- 关于My97DatePicker插件的使用:
- 圆图片 github项目 CircleImageView【常用】
- <LeetCode><Easy> 118 Pascal's Triangle
- css3 多列显示属性column
- 使用Apple ID免费真机调试
- Spring中的p标签