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

    1、定义:

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

    2、查看方法:

    ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'

    -A 参数列出所有进程
    -o 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数

    3、清除方法:

    1.改写父进程,在子进程死后要为它收尸。具体做法是接管SIGCHLD信号。可以设置一个处理函数wait() 或waitpid()。

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

    3.如果僵尸进程很多,影响了系统性能,可以重启系统。

    4、引用别人的一个实例:

    使用一条简单的命令,直接查找僵死进程,然后将父进程杀死。

    ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9

    awk命令 :

    文本处理工具,处理对象是文本文件,主要是对列进行操作。默认使用增强的正则表达式(EREs)。
    awk使用方法
    awk '{pattern + action}' {filenames}。

    以上例子中是对查询结果进行处理,不是对文本文件进行处理。

    xargs命令:

    xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。

    通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。

    xargs是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令

  • 相关阅读:
    二分插入排序
    LEETCODE 返回两个正序数组的 中位数
    4的幂 算法
    leetcode 两个单链表两数相加
    KMP(The Knuth-Morris-Pratt Algorithm)
    Java Case Interview one
    AWK SED命令 简单入门
    Problem Fix List(always update)
    mysql存储过程快速上手
    java while和switch-case循环
  • 原文地址:https://www.cnblogs.com/live-fine/p/3514835.html
Copyright © 2011-2022 走看看