linux进程管理

进程:进程就是运行的程序
进程process:有生命周期
 资源分配的单位,执行的程序的一部分副本
 
 cpu,内存,打开的文件等等都是进程的资源
 
os:(TASK STRUCTURE描述跟踪进程)
进程有父子关系,任何一个进程都是由其父进程fork自身而来

cow:copy on write

线程(thread)是进程的子系统

进程状态:
 R:Running,Ready:运行或就绪
 S:可中断   D:不可中断
 Z:Zombie僵死态
 T:Stop停止态

cpu上要么运行的是内核要么是用户进程
sys time系统时间:us time用户时间 3:7
id time cpu空闲时间

进程类型:
 交互式进程(动态调高优先级,较少的cpu时间)
 批处理进程(调低其优先级,较多cpu时间运算多)
 实时进程
进程的优先级:(0-139)
 动态优先级:0-99
 静态优先级:
 用户空间的进程:100-139,(-20-0-19)默认为120
  调整进程的nice值来调整优先级

pstree命令:用于显示当前系统上的进程树

ps:两种风格  用于显示进程信息
 BSD:
  a:所有跟终端相关的进程
  x:所有跟终端无关的进程
  u:显示进程所属用户    vsz虚拟内存大小  rss进程实际物理内存大小
      stat进程状态:<表示高优先级的进程  N:低优先级的进程  l:多线程进程
        +:前台进程   s:会话进程的引导者   COMMAND:命令两侧加中括号表示内核线程
 SysV:
  -e:查看所有进程
  -f:详细信息   F:显示更详
   C:cpu利用率  PSR:进程在哪个cpu上运行
  -o:自定义显示字段,显示多个条目时彼此间用逗号隔开
top:动态显示进程的执行信息,是一个交互式的命令,默认排序按cpu使用率排
 1键控制cpu信息显示个数,
 M:按驻留内存大小排序,P返回原排序状态;
 T:根据累计时间进行排序
 l:是否显示平均负载和启动时间
 t:是否显示进程和cpu状态相关信息
 m:是否显示内存相关信息
 c:是否显示完整的命令行信息
 q:退出top
 k:终止进程

uptime: 显示的选项意思  系统时间 

vmstat:虚拟内存状态(统计)[-n] [delay [count]] 采样显示count次结束
  -n:取消表头显示
  内容解析:
  procs 
   r:运行和等待cpu时间片的进程个数,b:等待资源完成的进程数
  memory
   swpd:交换数据的大小
   free:物理内存当前空闲空间大小
   buff:对块设备读写时进行缓冲的大小
   cache:对文件读写时缓存的大小
  swap
   si:由磁盘调入内存
   so:由内存调入磁盘
  IO
   bi:由块设备读出来的数据
   bo:写入某块设备的数据
  system
   in:每秒钟中断数
   cs:上下文切换处
  cpu
   us:用户空间进程所消耗cpu时间的比例
   sy:内核所消耗cpu时间的比例
   id:空闲比例
   wa:等待IO完成的时间的比例
   st:被虚拟机偷走的时间比例
   
进程分两类:
 跟终端相关的进程:终端退出进程就终止
 跟终端无关的进程
 
进程间的通信(IPC):
 共享内存
 信号,signal
 管道,套接字
 
kill -# :命令杀死进程的信号
 1:SIGHUP让一个进程无需重启重读配置文件
 2:SIGINT,Ctrl+c
 9:SIGKILL 杀死进程
 15:SIGTERM 终止进程,提示  默认15信号
 19:SIGSTOP 停止进程
 18;唤醒进程    
 kill + 信号 执行命令
  kill -# PID 只能跟PID
 killall COMMAND 终止所有同一个名字的进程
 
调整进程优先级:
 nice -n # COMMAND 以#为优先级来执行command
 renice # PID 调整已启动的nice值
 
作业控制:
 &:键入在命令后可后台执行
 nohup + 命令,终端退出也不会结束
 
 ctrl+z让一个作业处于后台且停止
 bg %jobnum:让一个处于后台且停止的作业在后台继续运行
 fg %jobnum:让一个处于后台且停止的作业到前台继续运行
 jobs:作业列表
 kill %2jobnum:杀死一个作业
 
pidof COMMAND 查看进程的id号
pgrep COMMAND 同上

你可能感兴趣的:(进程)