进程基本信息

程序被内存加载到空间 变成一个进程

进程的信息

  • pid 自己的进程 ID
  • ppid 父进程的 id
  • pgid 进程组的 id
  • uid 用户 id
  • gid 组 id
  • egid 有效用户 id
  • euid 有效用户 id

进程的状态

  • R 运行状态
  • Z 僵尸状态
  • S 睡眠状态
  • T 停止状态

1 进程被创建后 子进程会复制 [父进程的代码段和数据段 ELF 文件]

并以创建后的下一行运行

2 如果使用了多进程 若父进程先结束 

子进程会被 系统进程 1号进程托管变成 孤儿进程

3 父子进程是公用一块内存空间的 子进程若写数据 [写时复制]

写时会复制一块内存空间 给子进程修改

进程退出

  • 运行到最后一个语句
  • return 返回
  • 运行遇到 exit 的时候
  • 程序异常的时候
  • 进程接受到中断信号
  进程要么 正常结束  要么 异常结束 中断信号
  退出都有 一个终止状态码 
  进程退出时 不会真的退出 还会驻留 
  父进程可以使用 wait pcnt_wait 函数 
  来获取进程的终止状态码 同时会释放 终止进程的内存空间
  僵尸进程指 子进程已经结束 但是父进程还没使用 wait/wait_pid 回收
  
  进程动态生成的目录
    一个进程运行时 会生成 /proc/PID 这个目录文件
    如果开发一个守护进程的wab项目 如果开启了大量线程没有回收 服务器的内存和存储空间 会被挤满
   我们必须回收

linux 命令

  • ps -exj ps -aux 查看进程的状态
  • pstree -ap 查看进程树
  • kill -s 19 命令 用来给一个进程发送中断信号
最后修改:2022 年 03 月 26 日 08 : 41 PM
如果觉得我的文章对你有用,请随意赞赏