ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux-进程管理(1)Linux进程睡眠状态 disk sleep (kill -9 杀不掉)

2022-08-17 18:31:37  阅读:168  来源: 互联网

标签:00 mv kill Linux 进程 sleep root


参考文档
Linux进程睡眠状态disk sleep

1. Linux进程状态

Running(R):运行或将要运行
Interruptible(S):被阻断而等待一个事件,可能会被一个信号**
Uninterruptible(D):被阻断而等待一个事件,不会被信号**
Stopped(T):由于任务的控制或者外部的追踪而被终止,比如:strace
Zombie(Z):僵死,但是它的父进程尚未调用wait函数.
Deal(X):这个永远看不见

2. 睡眠状态disk sleep

Linux进程有两种睡眠状态,一种interruptible sleep,处在这种睡眠状态的进程是可以通过给它发信号来唤醒的,也是可以kill的,进程状态如下

#cat /proc/[pid]/status
Name:   sysmgt
State:  S (sleeping)

另外一种睡眠状态是uninterruptible sleep,处在这种状态的进程不接受外来的任何信号,这也是为什么之前我无法用kill杀掉这些处于D状态的进程,无论是”kill”, “kill -9″还是”kill -15″,因为它们压根儿就不受这些信号的支配。

#cat /proc/[pid]/status
Name:   sysmgt
State:  D (disk sleeping)

进程为什么会被置于uninterruptible sleep状态呢?处于uninterruptible sleep状态的进程通常是在等待IO,比如磁盘IO,网络IO,其他外设IO,如果进程正在等待的IO在较长的时间内都没有响应,那么就很会不幸地被 ps看到了,同时也就意味着很有可能有IO出了问题,可能是外设本身出了故障,也可能是比如挂载的远程文件系统已经不可访问了,我这里遇到的问题就是由互斥锁引起的,比如说我开了8个进程同时访问一个io,访问的时候势必会加锁来保护资源,那么,当一个进程正在访问的时候,其他进程如果在等待锁,那么就会进入disk sleep,当你执行kill,它不会立即响应,当锁满足条件的时候才可能响应信号。https://blog.csdn.net/davion_zhang/article/details/48268319

3. 场景重现

今天遇到云主机系统盘磁盘占用率100%,(因之前运维部署失误导致现存问题),主机有挂载nfs存储,将系统盘大文件拷贝到nfs中使用mv或者cp命令直接变成D状态进程。

[root@iZ25l1lr9hoZ ~]# ps -ef | grep mv
root      1261 32321  0 15:11 pts/8    00:00:00 grep mv
root     31838     1  0 14:47 ?        00:00:00 mv -i ./logdb20210407110846705  /filebackup/logdbcopy-backup 
[root@iZ25l1lr9hoZ ~]# kill -9 31838  ==>kill -9 杀不掉进程
[root@iZ25l1lr9hoZ ~]# ps -ef | grep mv
root      1261 32321  0 15:11 pts/8    00:00:00 grep mv
root     31838     1  0 14:47 ?        00:00:00 mv -i ./logdb20210407110846705  /filebackup/logdbcopy-backup 


[root@iZ25l1lr9hoZ ~]# cat /proc/31838/status
Name:	mv
State:	D (disk sleep)
Tgid:	31838
Pid:	31838
PPid:	1
...

4. 解决方案

D状态(disk sleep)进程用kill -9命令是不管用的,最简单的方法就是reboot重启, 除此还可以修改内核,将其进程状态转化为别的状态,然后kill掉。

标签:00,mv,kill,Linux,进程,sleep,root
来源: https://www.cnblogs.com/muzlei/p/16596328.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有