Linux进程管理—ps等命令

时间:2021-10-08 14:53:50

Linux进程

进程常见状态

     Uninterruptible sleep:不可中断的睡眠,当一个执行中的进程需要加载IO资源时,由于IO加载的速度较慢,进程会转入睡眠状态,交出CPU,
            由其他进程运行,进入睡眠状态。由于当前进程所需的资源没有及时得到获取,或者没有其他更多的事情需要干了。但是一个处于睡眠中的进程
            在外部资源满足的时候,可以随时被唤醒。
    Interruptible sleep:可中断睡眠,由用户的请求唤醒的进程,在没有用户请求的时候,进入空闲状态,于是进入睡眠状态,当有新的用户请求到达时,
                   进程重新被唤醒。用户请求也属于IO请求。
    Zombie :称为僵尸进程,它指的是某些进程结束后,退出CPU,但是它占据的内存却不会释放。它是内核泄漏的一种表现。
              子进程的内存资源是由父进程来回收的

进程的衍生

    kernel:生成第一个进程,init进程。相当于"上帝"。
    init: 进程号为1,操作系统上所有进程都是init的子进程。相当于"亚当/夏娃"。

进程优先级

    100-139:用户可控制
    0-99:内核调整的
    数字越小,优先级越高

进程管理命令风格Process State

    SysV风格:-Options
    BSD风格: Options

进程的分类

    跟终端相关的进程
    跟终端无关的进程

进程状态可视化

    D:不可中断的睡眠
    R:运行或就绪
    S:可中断的睡眠
    T:停止
    Z:僵死
    
    <:高优先级进程
    N:低优先级进程
    L:已加锁进程
    l: 多线程进程
    s: 会话进程首进程
    +:前台进程组中的进程

进程管理命令

ps

BSD风格  

    a: 所有与终端有关的进程
    u: 所有与用户有关的信息
    x: 所有与终端无关的进程

SysV风格

       -elF
       -ef
       -eF

      ps -o PROPERTY1,PROPERTY2 指定显示的字段,默认只显示前台进程
       例:ps -o pid,comm,ni
              ps -axo pid,comm,ni      

pstree

     显示当前系统上的进程树

    -u [username | uid ]:显示与某用户有关的进程信息
    -p:显示进程PID
    -n:按PID排序
    -p [ pid ]:显示某pid及其子进程相关的进程信息
    -l:显示长命令行

pgrep

    进程中的grep,搜索相关进程的信息:pgrep -u user *

    -P pid:显示某pid及其子进程信息
    -t ttyN:显示某ttyN及其子进程信息
    -u|U user1,user2……:显示user1,user2,……及其子进程信息
    -G gid1,gid2,……:显示gid1,gid2,……及其进程信息
    -d delimiter:设置显示间隔符delimiter,默认换行显示

pkill

     进程中的kill命令,用法同kill

    -P pid:显示某pid及其子进程信息
    -t ttyN:显示某ttyN及其子进程信息
    -u|U user1,user2……:显示user1,user2,……及其子进程信息
    -G gid1,gid2,……:显示gid1,gid2,……及其进程信息

pidof

     根据程序名称,查找其相关进程的ID号;

free

    查看内存和交换内存使用情况

    -b/k/m/g:设置显示单位
    -h:可读性显示
    -t:单行显示
    -o:不显示-/+buffer/cache行
    -s N:指定刷新显示时间延迟,单位:s
    -c M:指定刷新显示的次数,与 -s 一起使用有效
    -l:显示详细的内存信息,包括High/Low内存信息
    -a:显示availabel列

top

    top
        -d: 指定延迟时长,单位是秒
        -b: 批模式
        -n #:在批模式下,共显示多少批

    M: 根据驻留内存大小进行排序
    P:根据CPU使用百分比进行排序
    T: 根据累计时间进行排序
    N:根据PID大小进行排序
    R:切换排序方式:由大到小,由小到大
    A:进入全屏分类显示模式(1:Def,2:Job,3:Mem,4:Usr)
    I:打开/关闭Irix mode
    B:加粗显示当前命令(top)所在的进程及系统主要参数
    H:显示/隐藏所有线程
    S:打开/关闭Cumulative time
    G:选择filed group(要显示的子类别):1-4
    Z:设置进程信息显示的颜色,a/w改变filed group类别,0-7设置颜色,q放弃操作,ENTER键保存并离开。
    U:显示与某用户(有效用户,实际用户,文件系统用户)UID匹配的进程信息
    W:保存当前配置到配置文件
    
    l: 是否显示平均负载和启动时间
    t: 是否显示进程和CPU状态相关信息
    m: 是否显示内存相关信息
    r:重新设置nice值
    k: 终止某个进程
    a:切换全屏分类显示的类别
        M,P,N,T等对于子类别依然有效
    n:设置最大任务ID,0为无线大
    d/s:top信息显示情况下切换延迟/刷新时间
    b:加亮显示当前命令(top)所在的进程
    i:显示所有的tasks,默认on,off情况下只显示当前进程及少数进程信息
    x:在颜色模式下,当前排序列高亮显示
    y:在颜色模式下,“runing tasks”行高亮显示
    z:打开/关闭颜色显示
    u:只显示与某用户(有效用户)UID匹配的进程信息
    c: 是否显示完整的命令行信息
    q: 退出top