pgrep

  

 

  1. --delimiter

     

  2. --list-name
    --list-full

     

  3. --inverse

     

  4. --count

     

  5. --full

     

  6. --pgroup pgid       根据 pgid筛选

     

     

  7. --group 依据 进程 real group ,即进程的 real group id筛选

     

     

  8. --euid           match by effective id

     

     

  9. --uid          match by real id   

     

     

  10. --session       match session id

     

     

  11.  --newest  --oldest

     

  12. --terminal        match by controlling terminal



  13. --exact

     

     

     

  14. ---parent

     

  15.   namespace

     

     一个进程实体对应一个task_struct结构体


    PID:用于唯一标记一个进程

    这句话在以前是完全无误的,但是现在还必须加上一个条件,那就是在一个命名空间内唯一标记一个进程。关于命令空间,下一个章节会有介绍

    TGID:线程组ID

    一个进程可能包含多个线程,组成一个线程组,线程组内所有的线程的TGID都等于组长的PID。

    PGID:进程组ID。

    多个进程可以组成一个进程组,一个进程组内所有进程的PGID都等于组长的PID。

    SID:几个进程组可以组成一个会话组,会话组内所有的进程都有相同的SID。

    上图是3级namespace,上级和下级之间是父子关系。关于namespace有两点十分关键:

    各个namespace之间的是相互隔离的,也就是说PID可以重复。如上图各个namespace都有PID为1的进程。

    在下级namespace中创建的进程,在上级namespace中是可见的。如上图在level2 namespace中创建了进程PID=1,该进程在level 1 namespace中被映射为PID=3的进程,在level0 namespace中被映射为PID=5的进程。

 

 

posted @ 2021-08-06 11:10  ascertain  阅读(145)  评论(0编辑  收藏  举报