僵尸进程111

Linux 系统中的进程可能处于如下状态中的一种:

D = 不可中断的休眠
I = 空闲
R = 运行中
S = 休眠
T = 被调度信号终止
t = 被调试器终止
Z = 僵尸状态

Interruptible Sleep,可中断睡眠,在 ps 命令中显示 S。处在这种睡眠状态的进程是可以通过给它发送信号来唤醒的。
Uninterruptible Sleep,不可中断睡眠,在 ps 命令中显示 D。处在这种睡眠状态的进程无法立即处理任何发送给它的信号,这也是无法用 kill 杀掉它的原因。

僵尸进程可以被操作系统pid 1进程回收,前提是僵尸进程父进程是pid 1的进程;
重启或者杀死产生这些僵尸进程的父进程,问题就解决了;

Z状态
  1. 检查僵尸进程
top命令
当zombie前的数量不为0时,即系统内存在相应数量的僵尸进程。2. 查询父进程ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'3. 通过父进程杀死僵尸进程kill -HUP 僵尸进程父ID4. 一键杀死所有僵死进程
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' | awk -F" " '{ print $2 }' | xargs kill -HUP

实际使用

杀父进程kill -HUP
ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' | grep daemon_guard.sh | awk -F" " '{ print $2 }' | xargs kill -HUP杀子进程kill -9
ps -ef |grep wsssr  |grep -v grep |awk '{print $2}'|xargs kill -9

当你使用 kill -HUP 发送挂起信号(SIGHUP)给一个进程时,这通常会导致该进程终止。如果这个被信号杀死的进程是一个父进程,并且它有子进程在运行,那么这些子进程将会变为孤儿进程,其父进程PID会自动变为1(即init进程)。这是操作系统内核自动处理的,确保即使父进程不再存在,子进程也能被妥善管理。

简而言之,kill -HUP 信号本身并不直接导致子进程的父进程变为1,而是父进程因收到该信号而终止这一行为,间接导致了子进程成为孤儿并被init进程接管。

D状态

D状态,也称为不可中断的睡眠状态(Uninterruptible Sleep),是指进程正在等待某个资源(如磁盘I/O、网络I/O或其他硬件操作)而暂时无法被调度执行的状态。在这个状态下,进程不响应信号,包括SIGKILL在内的大多数信号都无法中断它,直到它等待的事件完成。以下是D状态进程产生的几种常见场景及处理方法:

产生原因:
I/O等待:进程可能在等待磁盘读写、网络数据包到达等I/O操作完成。
锁等待:进程可能在等待某个锁,比如在多进程访问共享资源时。
硬件交互:与硬件交互的操作,如磁盘检查、硬件设备通信,可能导致进程进入D状态。
NFS问题:当使用网络文件系统(NFS)时,如果NFS服务器不可达或响应缓慢,访问NFS文件的进程可能会进入D状态。
处理方法:
诊断I/O问题:检查是否有磁盘满、硬件故障或网络延迟等问题,使用如iotop、dmesg等工具辅助诊断。
检查NFS状态:如果是NFS相关问题,确保NFS服务器正常运行,使用ping、nfsstat等命令检查。
强制重新挂载文件系统:如果是因为文件系统挂载问题,尝试卸载再重新挂载有问题的文件系统。
系统日志:查看系统日志(如/var/log/messages或journalctl)以获取更多关于进程为何进入D状态的信息。
内核参数调整:在极端情况下,可能需要调整内核参数,如磁盘缓存相关的设置。
重启服务或系统:作为最后手段,如果上述方法无效,可以考虑重启受影响的服务或整个系统,但这可能会导致未保存的数据丢失。
避免使用kill -9:由于D状态的进程不响应信号,通常不建议使用kill -9,因为这可能留下资源未被正确清理。但在确认无其他选项时,可考虑使用。
在处理D状态进程时,重要的是先理解进程为什么会进入这种状态,针对性地解决问题的根本原因,而非直接尝试终止进程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/10754.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OC中Block为什么不能为nil

在 Objective-C 中,向 nil 对象发送消息是完全有效的,这是因为 Objective-C 运行时对 nil 消息发送进行了特别的处理。当你向 nil 对象发送消息时,消息会被静默地忽略,不执行任何操作,也不会返回任何值(或者…

Unity Editor 找物体助手

找啊找朋友~ 🍱功能介绍🥙使用方法 🍱功能介绍 💡输入相关字符串,它会帮你找到名称中带有该字符串的所有物体,还会找包含该字符串的Text、TextMeshProUGUI。 🥙使用方法 💡导入插…

小学拼音弄一下

import re from xpinyin import Pinyindef remove_middle_characters(text):# 仅保留汉字chinese_chars re.findall(r[\u4e00-\u9fff], text)cleaned_text .join(chinese_chars)# 如果字符数为偶数,则在中间添加空格if len(cleaned_text) % 2 0:middle_index le…

【北京迅为】《iTOP-3588从零搭建ubuntu环境手册》-第5章 安装SSH

RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

从0开始学python(七)

目录 前言 1 break、continue和pass函数 1.1 break 1.2 continue 1.3 pass 2、序列的索引及切片操作 2.1字符串的索引和切片 2.1.1 字符串索引 2.1.2 字符串切片 总结 前言 上一篇文章我们介绍了python中的循环结构,包括for和while的使用。本章接着往下讲。…

腾讯云服务器之ssh远程连接登录及转发映射端口实现内网穿透(实现服务器访问本地电脑端口)

目录 一、创建密钥绑定实例二、设置私钥权限三、ssh远程连接到服务器四、修改root密码五、端口转发(实现服务器访问本地电脑的端口) 一、创建密钥绑定实例 创建密钥会自动下载一个私钥,把这个私钥复制到c盘 二、设置私钥权限 1、删除所有用户…

免费剪辑的素材资源网站,超高清、可商用、不限速、无版权,迅速有效的解决您的视频剪辑难题!

在数字媒体时代,高质量的剪辑素材已成为视频制作的核心资源。下面为您推荐的优质视频剪辑素材网站,都提供超高清、无限速、无版权、可商用的素材,这些网站将大大提升您的视频制作效率和质量 01. 蛙学府 实用性:★★★★☆ 丰富性&…

您真的会高效使用 Mac 吗?

文章目录 屏幕的保养快捷键预览修改文件名查看文件属性搜索编辑复制,粘贴,剪切,撤销删除 跳转窗口屏幕截图声音Dock强制退出查字典神奇的Option键鼠标与触控板切换桌面与应用程序打开通知中心打开Mission Control 安装与卸载Mac应用程序压缩和…

记一些CISP-PTE题目解析

0x01 命令执行 直接payload: 127.0.0.1 & whoami,发现可以成功执行whoami命令 然后ls …/ ,发现有个key.php文件 尝试用cat命令查看 发现不行被拦截了。(其实题目过滤了常用的查看文件的命令 ) 这里有两种思路,第…

关于一致性,你该知道的事儿(下)

关于一致性,你该知道的事儿(下) 前言一、并发修改单个对象1.1 原子写操作1.2 显示加锁1.3 原子的TestAndSet1.4 版本号机制 二、 多个相关对象的一致性2.1 最大努力实现2.2 2PC && TCCC2.3.基于可靠消息的一致性方案2.4.Saga事务 三、…

HNCTF-PWN

1.ez_pwn 直接看危险函数,不能溢出,只能覆盖ebp。 后面紧接的又是leave,ret 很明显是栈迁移,通过printf打印出ebp,通过偏移计算出栈地址。 通过gdb调试,偏移是0x38 以下是payload: from pwn import * #i…

python常用内置对象

1.字符串与字节串 对str 类型调用其encode()方法进行编码得到byte字符串, 对byte字节串调用其encode()方法并指定正确的编码格式得到str字符串 “房地产”,encode("utf-8") #对中文进行编码-.decode("u…

【自然语言处理】【大模型】DeepSeek-V2论文解析

论文地址:https://arxiv.org/pdf/2405.04434 相关博客 【自然语言处理】【大模型】DeepSeek-V2论文解析 【自然语言处理】【大模型】BitNet:用1-bit Transformer训练LLM 【自然语言处理】BitNet b1.58:1bit LLM时代 【自然语言处理】【长文本…

11.偏向锁原理及其实战

文章目录 偏向锁原理及其实战1.偏向锁原理2.偏向锁案例代码演示2.1.偏向锁案例代码2.2.1.无锁情况下状态2.1.2.偏向锁状态2.1.3.释放锁后的状态 2.2.偏向锁的膨胀和撤销2.2.1.偏向锁撤销的条件2.2.2.偏向锁的撤销 2.2.3.偏向锁的膨胀 2.3.全局安全点原理和偏向锁撤销性能问题2.…

面试题-实例

1.什么是线程池? 线程池就是事先将创建好的线程进行整合,当需要使用的时候,直接拿出来进行使用,不用现去创建,可以节约开辟的时间,提高效率。 2.线程池有哪些种类? 在java.util.concurrent.Ex…

EPAI手绘建模APP工程图顶部工具栏

7、工程图 图 302 工程图 工程图包括顶部常用工具栏、右侧工程图工具栏、左侧模型列表栏、中间的工程图。 (1) 常用工具栏 ① 删除,选中场景中工程图元素后,删除。可以选择多个工程图元素同时删除。 ② 设置,打开工程图设置页面&#xff0…

Java基础(29)表达式语言(EL)的隐式对象及其作用

表达式语言(Expression Language,简称EL)是JSP 2.0及以上版本中引入的一种简化页面代码编写的语言,它提供了一种在JSP页面中更容易使用JavaBean属性及集合的方式。EL主要用于简化对Java代码的调用,特别是从后端到前端的…

2024 年最新本地、云服务器安装部署 miniconda 环境详细教程(更新中)

Anaconda 概述 Anaconda 是专门为了方便使用 Python 进行数据科学研究而建立的一组软件包,涵盖了数据科学领域常见的 Python 库,并且自带了专门用来解决软件环境依赖问题的 conda 包管理系统。主要是提供了包管理与环境管理的功能,可以很方便…

picoCTF-Web Exploitation-More SQLi

Description Can you find the flag on this website. Additional details will be available after launching your challenge instance. Hints SQLiLite 先随便输入个账号密码登录一下,得到查询SQL,接下来应该对SQL进行某些攻击来绕过密码登录成功 -- …

微信小程序踩坑,skyline模式下,简易双向绑定无效

工具版本 基础库版本 Skline模式 页面json设置 问题描述 skyline模式下,textarea,input标签设置简易双向绑定 model:value是无效的,关闭skyline模式就正常使用了 截图展示 这里只展示了textarea标签,input标签的简易双向绑定也是无效的 总结 我在文档里面是没找到skyline里面不…