位置: IT常识 - 正文

Linux系统中查杀僵尸进程的基本方法讲解(linux查杀webshell)

编辑:rootadmin
这篇文章主要介绍了Linux系统中查杀僵尸进程的基本方法讲解,文中讲到了Linux中处理相关进程的SIGCHLD信号的相关知识,需要的朋友可以参考下... 15-12-19

推荐整理分享Linux系统中查杀僵尸进程的基本方法讲解(linux查杀webshell),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux查看杀死进程命令kill,linux病毒查杀,linux rootkit查杀,linux查看杀毒软件,linux查杀webshell,linux rootkit查杀,linux rootkit查杀,linux如何查杀进程,内容如对您有帮助,希望把文章链接给更多的朋友!

在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程. 在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用 waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程。

一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁, 而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是 使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)

进程的危害由于子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束. 那么会不会因为父进程太忙来不及wait子进程,或者说不知道 子进程什么时候结束,而丢失子进程结束时的状态信息呢? 不会。因为UNⅨ提供了一种机制可以保证只要父进程想知道子进程结束时的状态信息, 就可以得到。这种机制就是: 在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等。但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termination status of the process,运行时间the amount of CPU time taken by the process等)。直到父进程通过wait / waitpid来取时才释放. 但这样就导致了问题,如果进程不调用wait / waitpid的话,那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程. 此即为僵尸进程的危害,应当避免。

1、如何查看僵尸进程?如何查看linux系统上的僵尸进程,如何统计有多少僵尸进程?

代码如下:#ps -ef | grep defunct

或者查找状态为Z的进程,Z就是代表zombie process,僵尸进程的意思。

Linux系统中查杀僵尸进程的基本方法讲解(linux查杀webshell)

另外使用top命令查看时有一栏为S,如果状态为Z说明它就是僵尸进程。

代码如下:Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie

top命令中也统计了僵尸进程。或者使用下面的命令:

代码如下:ps -ef | grep defunct | grep -v grep | wc -l

2、如何杀死僵尸进程?一般僵尸进程很难直接kill掉,不过您可以kill僵尸爸爸。父进程死后,僵尸进程成为”孤儿进程”,过继给1号进程init,init始终会负责清理僵尸进程.它产生的所有僵尸进程也跟着消失。

代码如下:ps -e -o ppid,stat | grep Z | cut –d” ” -f2 | xargs kill -9

代码如下:kill -HUP `ps -A -ostat,ppid | grep -e ’^[Zz]‘ | awk ’{print $2}’`

当然您可以自己编写更好的shell脚本,欢迎与大家分享。

另外子进程死后,会发送SIGCHLD信号给父进程,父进程收到此信号后,执行waitpid()函数为子进程收尸。就是基于这样的原理:就算父进程没有调用wait,内核也会向它发送SIGCHLD消息,而此时,尽管对它的默认处理是忽略,如果想响应这个消息,可以设置一个处理函数。

3、如何避免僵尸进程?处理SIGCHLD信号并不是必须的。但对于某些进程,特别是服务器进程往往在请求到来时生成子进程处理请求。如果父进程不等待子进程结 束,子进程将成为僵尸进程(zombie)从而占用系统资源。如果父进程等待子进程结束,将增加父进程的负担,影响服务器进程的并发性能。在Linux下 可以简单地将 SIGCHLD信号的操作设为SIG_IGN。 signal(SIGCHLD,SIG_IGN); 这样,内核在子进程结束时不会产生僵尸进程。这一点与BSD4不同,BSD4下必须显式等待子进程结束才能释放僵尸进程

或者

用两次fork(),而且使紧跟的子进程直接退出,是的孙子进程成为孤儿进程,从而init进程将负责清除这个孤儿进程。

本文链接地址:https://www.jiuchutong.com/zhishi/267682.html 转载请保留说明!

上一篇:mac系统的电脑怎么切换城市天气? mac切换其他城市的天气的技巧(mac系统小技巧)

下一篇:如何阻止windows更新驱动程序(如何阻止windows10升级到11)

  • 荣耀v9怎么升级鸿蒙系统(荣耀v9怎么升级鸿蒙系统3.0)

    荣耀v9怎么升级鸿蒙系统(荣耀v9怎么升级鸿蒙系统3.0)

  • 荣耀magic Book14和magic Book15的区别(荣耀magicbook14和thinkbook14)

    荣耀magic Book14和magic Book15的区别(荣耀magicbook14和thinkbook14)

  • 苹果限速怎么解除(苹果限速怎么解除不了)

    苹果限速怎么解除(苹果限速怎么解除不了)

  • 小天才z6可以看抖音吗(小天才z6可以看小说吗)

    小天才z6可以看抖音吗(小天才z6可以看小说吗)

  • 视频可以查拍摄位置吗(视频能不能查出录制的地点)

    视频可以查拍摄位置吗(视频能不能查出录制的地点)

  • 街电可以异地还吗(街电可不可以跨省还)

    街电可以异地还吗(街电可不可以跨省还)

  • 打印机连接不上无线网怎么回事(打印机连接不上手机什么原因)

    打印机连接不上无线网怎么回事(打印机连接不上手机什么原因)

  • 快速以太网的传输速率是(快速以太网的传输速率可以达到())

    快速以太网的传输速率是(快速以太网的传输速率可以达到())

  • qq群课堂会记录时间吗(qq群课堂会记录观看时间会累计吗)

    qq群课堂会记录时间吗(qq群课堂会记录观看时间会累计吗)

  • 手机核验是什么意思(手机验核失败怎么办)

    手机核验是什么意思(手机验核失败怎么办)

  • 怎么将标题设置为艺术字(怎么将标题设置为页眉)

    怎么将标题设置为艺术字(怎么将标题设置为页眉)

  • 朋友圈怎么发多个视频(朋友圈怎么发多条内容合并)

    朋友圈怎么发多个视频(朋友圈怎么发多条内容合并)

  • 手机插卡的地方打不开怎么办(手机插卡的地方被牙签堵住了怎么办)

    手机插卡的地方打不开怎么办(手机插卡的地方被牙签堵住了怎么办)

  • oppofindx快充怎么打开(oppo快充方式)

    oppofindx快充怎么打开(oppo快充方式)

  • 微信怎样开启自启功能(微信怎样开启自动收款)

    微信怎样开启自启功能(微信怎样开启自动收款)

  • 陌陌甜蜜约会5分钟是啥(陌陌甜蜜约会5级多少钱)

    陌陌甜蜜约会5分钟是啥(陌陌甜蜜约会5级多少钱)

  • 夸克链信如何解绑(夸克链信怎么解除实名认证)

    夸克链信如何解绑(夸克链信怎么解除实名认证)

  • 如何将文件按顺序排列(如何将文件按顺序重命名)

    如何将文件按顺序排列(如何将文件按顺序重命名)

  • 毒上求购是什么(毒上边的求购是什么)

    毒上求购是什么(毒上边的求购是什么)

  • 照片抖动特效用什么(照片晃动特效)

    照片抖动特效用什么(照片晃动特效)

  • 微信里账户服务升级收益是什么情况(微信里账户服务在哪里)

    微信里账户服务升级收益是什么情况(微信里账户服务在哪里)

  • 滴滴可以24小时接单吗(滴滴网约车电话人工服务24小时)

    滴滴可以24小时接单吗(滴滴网约车电话人工服务24小时)

  • vue修改 el-input 输入框默认背景色(vue修改打包后静态资源路径的修改)

    vue修改 el-input 输入框默认背景色(vue修改打包后静态资源路径的修改)

  • 小程序 getActivePinia was called with no active Pinia. Did you forget to install pinia?(小程序开发一个多少钱啊)

    小程序 getActivePinia was called with no active Pinia. Did you forget to install pinia?(小程序开发一个多少钱啊)

  • vue3 setup中父组件通过Ref调用子组件的方法(vue父组件怎么调用子组件的方法)

    vue3 setup中父组件通过Ref调用子组件的方法(vue父组件怎么调用子组件的方法)

  • JavaScript基础语法入门(javascript基础编程)

    JavaScript基础语法入门(javascript基础编程)

  • 增值税发票综合服务平台错误代码35
  • 经审计的财务报告包括的内容
  • 申报附加税增加一行如何增加
  • 建筑企业异地预交税款如何处理
  • 房地产开发企业会计科目
  • 赡养老人专项附加扣除可以是爷爷奶奶吗
  • 预缴税款的完税证明单
  • 未认证的进项也就是库存
  • 自产自销免税物品包括哪些
  • 出售固定资产取得的收入
  • 海关进口货物如何消杀
  • 一般纳税人认定标准500万是什么时候开始执行
  • 预缴企业所得税分录
  • 定额发票2019年规定
  • 税务机关核定征收契税
  • 企业的筹建期间
  • 工会票据电子化管理系统如何领发票
  • 光伏发电项目发电户是否可以享受小规模优惠政策
  • 上月留抵进项抵扣分录
  • 技术转让时增值税怎么算
  • 企业计提的坏帐会计分录
  • 趣谈linux系统
  • 其他权益工具投资公允价值变动怎么计算
  • PHP:xml_parser_get_option()的用法_XML解析器函数
  • 系统之家一键重装系统步骤
  • 银行的贷款怎么发放
  • 结转消费税的会计分录
  • 预付的房屋租赁费账务如何处理
  • 固定资产增加应计入什么
  • 出口企业如何确认增值税收入
  • 班夫国家公园最佳旅游时间
  • Waterfalls at the source of the Mundo River, Sierra de Riopar, Albacete, Spain (© Westend61/Getty Images)
  • php数组可以使用哪些键名
  • php preg_quote
  • 【强化学习】Q-Learning算法详解
  • Vite4+Pinia2+vue-router4+ElmentPlus搭建Vue3项目(组件、图标等按需引入)[保姆级]
  • js倒计时函数
  • php如何做app
  • 增值税普通发票查询真伪
  • 查账征收利润50万交多少税
  • 金税盘税局端系统响应错误怎么解决
  • 织梦技术论坛
  • 生产设备的折旧分录
  • 新会计准则规定
  • db2入门
  • 债券投资属于什么
  • 销售退货成本如何计算
  • 纸质承兑汇票怎么兑现步骤
  • 往来账核算
  • 购买的材料入库属于什么会计科目
  • 个人往对公账户上存款怎么存
  • 咨询费的支出范围
  • 什么情况下可以安排待岗
  • 代理出口业务会计分录
  • sql2000数据库怎么使用
  • 如何避免在游戏中切输入法
  • xp系统设置锁屏
  • 两种方法解决一年级看图问题
  • win8系统摄像头怎么打开
  • Win10 RedStone 2预览版14936快速版开始推送
  • win10修改默认
  • win7旗舰版用户
  • linux系统中scp命令的使用介绍
  • centos搭建服务器
  • 在linux中使用v2ray
  • Win10系统安装步骤
  • 原生js实现promise.all
  • Android游戏开发实训总结
  • iframe transparent透明背景方法
  • 物理引擎演示
  • javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
  • jquery如何解决跨域问题
  • 前端闭包函数
  • 新能源审核多久
  • 公司0申报怎么申报视频
  • 地税登记序号查询系统
  • 江苏国税电子税务局官网
  • 淘宝店铺过户后身份证是谁的
  • 地摊经济火了,月薪8000元
  • 汽车票用什么查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设