Linux进程监测相关指令

Linux

reference: 《Linux命令行与Shell脚本编程大全》,本文内容绝大部分来自书内(命令啥的比起背果然还是自己敲一敲来的直观一些)

监测程序

  1. 探查进程

    • ps
    • 默认情况下,ps只会显示运行在当前控制台下的,属于当前用户的进程
    • Linux中使用的GNU ps命令支持3种不同类型的命令行参数
    • Unix风格,前面加单破折线
    • BSD风格,前面不加破折线
    • GNU风格,前面加双破折线
    • 这里拿Unix风格列出来作为例子
    参数 描述
    -A 显示所有进程
    -N 显示与指定参数不符的所有进程
    -a 显示所有除控制进程(session leader)和无终端进程外的所有进程
    -d 显示除控制进程外的所有进程
    -e 显示所有进程
    -C cmdlist 显示包含在cmdlist列表中的进程
    -G grplist 显示组ID在grplist列表中的进程
    -U userlist 显示属主的用户ID在userlist列表中的进程
    -g grplist 显示会话或组ID在grplist列表中的进程
    -p pidlist 显示PID在pidlist列表中的进程
    -s sesslist 显示会话ID在sesslist列表中的进程
    -t ttylist 显示终端ID在ttylist列表中的进程
    -u userlist 显示有效用户ID在userlist列表中的进程
    -F 显示更多额外输出(相对-f)
    -O format 显示默认的输出列以及format列表指定的特定列
    -M 显示进程的安全信息
    -c 显示进程的额外调度器信息
    -f 显示完整格式的输出
    -j 显示任务信息
    -l 显示长列表
    -o format 仅显示由format指定的列
    -y 不要显示进程标记(显示进程状态的标记)
    -Z 显示安全标签信息
    -H 用层级格式来显示进程
    -n namelist 定义了WCHAN列显示的值
    -w 采用宽输出模式,不限宽度显示
    -L 显示进程中的线程
    -V 显示ps命令的版本号

    (说实在的指令太多,最后也用不上几个,况且这只是UNIX风格的而已,这种还是适合自己用时查,绝对比记列表靠谱多了)

    • 一些例子:

      • ps -a 输出的只有TTY(终端设备)参数有值的所有进程,且不包含控制进程
      • ps -A 则为所有
      • ps -la 相比-a会多出许多其他属性供查看
      • ps -L 会多出LWP参数,表示线程
      • 很多指令后面都是可以直接加上进程号的,不输入的情况下只会把此操作的进程号展示出来
    • 一些在输出中可能出现的属性:

      • UID:启动这些进程的用户
      • PID:进程的进程ID
      • PPID:父进程的进程号
      • C:进程生命周期中的CPU利用率
      • STIME:进程启动时的系统时间
      • TTY:进程启动时的终端设备
      • TIME:运行进程需要带累计CPU时间
      • CMD:启动的程序名称
      • F:内核分配给进程的系统标记
      • S:进程的状态
        • O代表正在运行(Operating)
        • S代表在休眠(Sleep)
        • R代表可运行,等待运行(Runnable)
        • Z代表僵化,进程已结束但父进程已不存在(Zombie 僵尸进程)
        • T代表停止(Terminated)
      • PRI:进程的优先级(数字越大优先级越低)
      • NI:谦让度值用来参与决定优先级
      • ADDR:进程的内存地址
      • SZ:假如进程被换出,所需交换空间的大致大小
      • WCHAN:进程休眠的内核函数地址
  2. 实时监测进程

    • top能够实时显示进程信息
      • f 可以选择对输出进行排序的字段
        • 进入后能够上下选择字段用来排序,s表示确定
        • d控制此字段是否显示
        • q退出并让设置生效
      • d 修改轮询间隔(刷新频率)
      • q 退出
    • 一些字段属性
      • PID,USER,PR,NI,S和上面一样
      • VIRT 占用虚拟内存
      • RES 占用物理内存
      • SHR 和其他进程共享的内存
      • %CPU 进程使用的CPU时间比例
      • %MEM 使用的内存占可用内存的比例
      • TIME+ 启动开始所占时间总量
      • COMMAND 对应命令行名称,即启动的程序名
  3. 结束进程

    • kill PID,需要是进程属主或者root用户
    • killall name 可以通过进程名来结束进程,且在其中可以设置通配符(root用户使用时要小心)
      • 比如killall http* 结束以http开头的所有进程

你可能感兴趣的:(Linux进程监测相关指令)