zoukankan      html  css  js  c++  java
  • linux 中获取进程和kill进程的几种方法

    ps:

    ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.

    注意:ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令

    参数:

    • -A :所有的进程均显示出来,与 -e 具有同样的效用;
    • -aux 显示所有包含其他使用者的进程

    最常用的有ps -ef 和ps -aux,解释如下:

    ps -ef 是用标准的格式显示进程的、其格式如下

    其中各列的内容意思如下
    UID       //用户ID,但输出的是用户名 
    PID        //当前进程的ID 
    PPID     //父进程ID 
    C          //进程占用CPU的百分比 
    STIME  //进程启动时间 
    TTY      //该进程在哪个终端上运行,若与终端无关,则显示? ,若为pts/0等,则表示由网络连接主机进程。 
    CMD    //命令的名称和参数

    ps aux 是用BSD的格式来显示、其格式如下

    同ps -ef 不同的有列有
    USER       //用户名 
    %CPU      //进程占用的CPU百分比 
    %MEM      //占用内存的百分比 
    VSZ      //该进程使用的虚拟內存量(KB) 
    RSS      //该进程占用的固定內存量(KB)(驻留中页的数量) 
    STAT      //进程的状态 
    START    //该进程被触发启动时间 
    TIME      //该进程实际使用CPU运行的时间

    其中STAT状态位常见的状态字符有
    D      //无法中断的休眠状态(通常 IO 的进程); 
    R      /运行,正在运行或在运行队列中等待; 
    S      //sleeping,中断,休眠中,在等待某个条件的形成或接受到信号 
    T      //停止,进程收到SIGSTOP,SIGSTP,SIGTOU信号后停止运行; 
    W      //进入内存交换 (从内核2.6开始无效); 
    X      //死掉的进程 (基本很少见); 
    Z      //僵尸进程,进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放;
    <      //优先级高的进程 
    N      //优先级较低的进程 
    L      //有些页被锁进内存; 
    s      //进程的领导者(在它之下有子进程); 
    l      //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads); 
    +      //位于后台的进程组;

    本文永久更新链接地址http://www.linuxidc.com/Linux/2016-07/133515.htm

    grep:

    参数:

    • --color    ###颜色着重显示命中的文件及文件件
    • -n  ###显示所检索内容在文件中的行号  number
    • -i   ###不区分大小写
    • -c  ###查找匹配的行数。输出类似于:filename1:0 filename2:2.....
    • -E  ###切换为 egrep,支持正则表达式   grep -E -v '(^$|^#)' xxxx 等价于egrep -v '(^$|^#)' xxx
    • -A   n    ###after     前面多少行,例如:grep ‘name’ -A 10 显示匹配内容和后面的10行
    • -B   n   ###before    后面多少行,例如:grep ‘name’ -B 10 显示匹配内容和前面的10行
    • -C   n   ###centor    前后多少行,例如:grep ‘name’ -C 10 显示匹配内容和前后面的10行
    • -F 或 --fixed-regexp : 将样式视为固定字符串的列表。
    • -v: 逆反模示, 输出不包含过滤字符串的内容.
    • -r: 递归模式, 可同时处理所有层级子目录里的文件.
    • -q: 静默模式, 不输出任何结果(stderr 除外. 常用以获取 return value, 符合为 true, 否则为 false .)
    • -w: 整词比对, 类似 <word> .
    • -l: 只输出符合比对的文件名称. 例如:grep -l 'string' *.log只返回含有匹配数据的文件名
    • -L:只返回不含有匹配数据的文件名,例如:grep -L 'string' *.log只返回不含有匹配数据的文件名
    • -o: 只输出符合 RE 的字符串.
    • -H:在匹配行输出文件名
    fgrep 相当于执行 grep 指令加上参数 -F

    pgrep命令是专门用于进程查询的grep。举例:$ pgrep firefox,输出为 1827 

    举例:

    1) grep命令与find 命令的结合,实现联合检索
    命令格式:find . -name '*.sql' -exec grep -i '被检索内容' {} ; -print
    例如: $find . -name '*.sql' -exec grep -i 'v$temp_space_header' {} ; -print
    2) grep -o 只输出符合 RE 的字符串.
    $grep '111' 21_h264.txt
    7111
    8111
    $grep -o '111' 21_h264.txt
    111
    111
    3) grep -c 查找匹配的行数
    $grep -c test cmp_md5_from_log.sh cmp_md5_from_output.sh test.sh
    cmp_md5_from_log.sh:10
    cmp_md5_from_output.sh:16
    test.sh:0
    $grep test cmp_md5_from_log.sh cmp_md5_from_output.sh test.sh|wc -l
    26
    4)grep -H 在匹配行输出文件名
    $grep -H test cmp_md5_from_log.sh
    cmp_md5_from_log.sh:ref_test_id=$2
    5)用grep查找单个或多个字符串
    1.单个
    $cat /tmp/php.log | grep "成功"  #所有的成功都会被查询出来。
    2.多个,同时满足条件
    $cat /tmp/php.log | grep "推荐" | grep "成功"  #只筛选出推荐成功的记录。
    3.或,满足任意条件
    $cat /tmp/php.log | grep -E "成功|失败"
    $cat /tmp/php.log | egrep "成功|推荐"   #成功或者推荐的都查询出来。

    kill 命令总结

    1.获取PID,kill -s 9 PID 其中-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程。

    2.pgrep firefox | xargs kill -s 9,把进程PID通过xargs传递给kill作参数,杀掉对应的进程。

    3.kill -s 9 `pgrep firefox`

    4.pkill -9 firefox,"-9" 即发送的信号是9,pkill无须 "s",终止信号等级直接跟在 "-" 后面

    linux命令杀父进程和子进程
    杀掉父进程:
     kill -9 `ps -ef |grep test |awk 'NR==1{print $3}'` 其中:NR==1 定位在file的第一行
    或者
    kill -9 `ps -ef | grep test | grep -v "grep" | awk '{print $3}'`
     
    杀掉子进程:
    kill -9 `ps -ef |grep test |awk 'NR==1{print $2}'`
    或者
    kill -9 `ps -ef | grep test | grep -v "grep" | awk '{print $2}'`
    参考:https://blog.csdn.net/XIAOHUI_ID/java/article/details/95353321
     
  • 相关阅读:
    JavaScript DOM编程艺术 读书笔记(简略)
    关于暂停或终止更新的相关读书笔记
    Core Java Volume II—Using annotations
    Data Structure and Algorithms Analysis in C Note (II)
    Hibernate实战——理解对象/关系持久化 笔记
    Data Structure and Algorithms Analysis in C Note (I)
    Java 8实战 第三章
    GitHub入门与实践 学习笔记(二)
    Computer Networking A Top-Down Approach 笔记(一)
    进程基础
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/9015930.html
Copyright © 2011-2022 走看看