zoukankan      html  css  js  c++  java
  • Centos7清理僵尸进程

    僵尸进程定义:
         In UNIX System terminology, a process that has terminated,but whose parent has not yet waited for it, is called a zombie.
         在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程.  在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用 waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程。
     
    如何查看linux系统上的僵尸进程,如何统计有多少僵尸进程?
    #ps -ef | grep defunct
    或者查找状态为Z的进程,Z就是代表zombie process,僵尸进程的意思。
    #ps -A -o stat,ppid,pid,cmd | grep -e '^ [Zz]'
    另外使用top命令查看时有一栏为S,如果状态为Z说明它就是僵尸进程。
    Tasks:  95 total,   1 running,  94 sleeping,   0 stopped,   0 zombie
    top命令中也统计了僵尸进程。或者使用下面的命令:
    ps -ef | grep defunct | grep -v grep | wc -l
     
    如何杀死僵尸进程呢?
    一般僵尸进程很难直接kill掉,不过您可以kill僵尸进程的父进程。父进程死后,僵尸进程成为”孤儿进程”,过继给1号进程init,init始终会负责清理僵尸进程.它产生的所有僵尸进程也跟着消失。
    ps -A -o stat,ppid,pid,cmd | grep -e '^ [Zz]' | awk '{print $2}' | xargs kill -9 
    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}’`

    做一个决定,并不难,难的是付诸行动,并且坚持到底。
  • 相关阅读:
    matplotlib 柱状图
    JavaScript 箭头函数
    JavaScript map reduce
    JavaScript sort函数
    JavaScript var、let、const
    javaScript 迭代器
    javaScript map和set
    批处理学习(-)之文件夹和文件的移动
    让 Lua 访问数据库
    lua 模块化推荐方法
  • 原文地址:https://www.cnblogs.com/wukc/p/14339641.html
Copyright © 2011-2022 走看看