当前位置:七道奇文章资讯安全技术网络技术
日期:2010-09-21 00:03:00  来源:本站整理

解析Linux操作系统僵尸进程[网络技术]

赞助商链接



  本文“解析Linux操作系统僵尸进程[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

    具体解析Linux操作系统僵尸进程, 在fork()/execve()历程中,假定子进程完毕时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等候子进程完毕,又没有显式忽视该信号,则子进程成为僵尸进程,无法正常完毕,此时即便是root身份kill

    在fork()/execve()历程中,假定子进程完毕时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等候子进程完毕,又没有显式忽视该信号,则子进程成为僵尸进程,无法正常完毕,此时即便是root身份kill-9也不能杀死僵尸进程.补偿办法是杀死僵尸进程的父进程(僵尸进程的父进程必定存在),僵尸进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵尸进程.

    僵尸进程是指的父进程已经退出,而该进程dead之后没有进程承受,就成为僵尸进程.(zombie)进程

    怎样产生僵尸进程的:

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

    是非常特别的一种,它已经放弃了几近全部内存空间,没有任何可履行代码,也不能被调度,仅仅在进程列表中保存一个位置,记录该进程的退

    出状况等信息供其他进程汇集,除此之外,僵尸进程不再占据任何内存空间.它需求它的父进程来为它收尸,假如他的父进程没安装SIGCHLD信

    号处理函数调用wait或waitpid()等候子进程完毕,又没有显式忽视该信号,那么它就一向保持僵尸状况,假如这时父进程完毕了,那么init进程自动

    会接办这个子进程,为它收尸,它还是能被排除的.但是假如假如父进程是一个循环,不会完毕,那么子进程就会一向保持僵尸状况,这就是为什么系统中有时会有很多的僵尸进程.

    怎么查看僵尸进程:

    操纵号令ps,可以看到有标志为Z的进程就是僵尸进程.

    怎样来排除僵尸进程:

    1.改写父进程,在子进程死后要为它收尸.具体做法是接纳SIGCHLD信号.子进程死后,会发送SIGCHLD信号给父进程,父进程收到此信号后,履行waitpid()函数为子进程收尸.这是基于这样的原理:就算父进程没有调用wait,内核也会向它发送SIGCHLD消息,固然对的默许处理是忽视,假如想呼应这个消息,可以设置一个处理函数.

    2.把父进程杀掉.父进程死后,僵尸进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵尸进程.它产生的全部僵尸进程也随着消逝.

    ===========================================

    在Linux中可以用

    ps auwx

    发现僵尸进程

    a all w/ tty, including other users 全部窗口和终端,包含其他用户的进程

    u user-oriented 面向用户(用户友好)

    -w,w wide output 宽格局输出

    x processes w/o controlling ttys

    在僵尸进程背面 会标注

    ps axf

    看进程树,以树形方法实际进程列表

    ps axm

    会把线程列出来,在linux下进程和线程是统一的,是轻量级进程的两种方法.

    ps axu

    显示进程的具体状况

    ===========================================

    killall

    kill -15

    kill -9

    普通都不能杀掉 defunct进程

    用了kill -15,kill -9今后 之后反而会多出更多的僵尸进程

    kill -kill pid

    fuser -k pid

    可以考虑杀死他的parent process,

    kill -9 他的parent process

    一个已经终止,但是其父进程还没有对其举行善后处理(获得终止子进程的有关信息、释放它仍占用的资源)的进程被称为僵死进程(Zombie Process).


 

本文引用地址: 与您的QQ/MSN好友分享!
您对本文章有什么看法或着疑问吗?请到论坛谈论您的关注和倡议是我们前行的参考和动力    相关文章 [Linux]Linux利用环境下九大DNS安全保障本领
[Linux]
Linux改正时区不用重启的办法
[Linux]
Fedora Linux 14 Alpha版下载
[Linux]
让Linux系统有效防备ARP攻击
[Linux]
linux改正指定用户的密码
[Linux]实例解析:找回丧失的Linux系统Grub密码
[Linux]
linux中发出"滴"的怪声的办理筹划
[
网站安全]比DDoS更变态的防备CC攻击安全技术解析
[Linux]LINUX下办理time_wait衔接过量
[Linux]
linux限速脚本

  以上是“解析Linux操作系统僵尸进程[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 解析Linux + Oracle最简化最重要的步骤
  • <b>高效解析Linux系统中配置Apache服务‎</b>
  • 解析Linux系统计算机死机的弊端缘由
  • 解析Linux操作系统僵尸进程
  • 解析Linux 2.6内核移植—利用程序篇
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .