linux进程管理

来源:互联网 发布:cf卡海豹突击队软件 编辑:程序博客网 时间:2024/06/06 12:21

linux进程管理

1.什么是进程?

进程是一个操作系统的基本概念,至于进程是什么不同人回答的可能也都有所出入,我的理解进程就是程序的一次动态执行,在这个过程中操作系统对它进行资源分配管理从而确保程序的正确执行,从程序开始运行到凋亡整个过程就是进程,但是进程不是程序这个一定要搞清楚。

2.进程有哪几种状态?

O:进程正在处理器运行.
S:休眠状态(sleeping)
R:等待运行(runable)R Running or runnable (on run queue) 进程处于运行或就绪状态
I:空闲状态(idle)
Z:僵尸状态(zombie)
T:跟踪状态(Traced)
B:进程正在等待更多的内存页
D:不可中断的深度睡眠,一般由IO引起,同步IO在做读或写操作时,cpu不能做其它事情,只能等待,这时进程处于这种状态,如果程序采用异步IO,这种状态应该就很少见到了

3.查看进程

ps      进程查看工具    -a  shell中运行的进程    -x  不在shell重运行的进程    -u  查看进程用户    -l  显示进程的详细信息    -f  完全信息full的缩写    -e  显示进程的依赖关系ps  -aux    |grep   进程关键字ps ax   -o %cpu,%mem,user,pid,comm  ##查看进程某项信息ps aux --sort +|-%cpu|%mem...       ##进程按指定方式排序




F:代表这个程序标志,说明这个程序的权限,常见号码有:
    若为 4 表示此程序的权限为 root ;
    若为 1 则表示此子程序仅进行复制(fork)而没有实际运行(exec)。
S:代表这个程序的状态 (STAT),主要的状态有:
UID/PID/PPID:代表此程序被该 UID 所拥有/程序的 PID 号码/此程序的父程序 PID 号码』
C:代表 CPU 使用率,单位为百分比;
PRI/NI:Priority/Nice 的缩写,代表此程序被 CPU 所运行的优先顺序,数值越小代表该程序越快被 CPU 运行。
ADDR/SZ/WCHAN:都与内存有关,ADDR 是 kernel function,指出该程序在内存的哪个部分,如果是个 running 的程序,一般就会显示-/ SZ 代表此程序用掉多少内存 / WCHAN 表示目前程序是否运行中,同样的, 若为 - 表示正在运行中。
TTY:登陆者的终端机位置,若为远程登陆则使用动态终端介面 (pts/n);
TIME:使用掉的 CPU 时间,注意,是此程序实际花费 CPU 运行的时间,而不是系统时间;
CMD:就是 command 的缩写,造成此程序的触发程序之命令为何

4.进程的优先级

从上面的查看进程的时候我们看到两个字段PRI和NI,
这两个字段反映的是进程的优先级nice值(NI)是静态优先级
priority(PRI)是动态优先级 在内核中,进程优先级的取值范围是通过一个宏定义的,这个宏的名称是MAX_PRIO,它的值为140。而这个值又是由另外两个值相加组成的,一个是代表nice值另一个是代表实时进程(realtime)优先级范围的MAX_RT_PRIO宏。说白了就是,Linux实际上实现了140个优先级范围,取值范围是从0-139,这个值越小,优先级越高。nice值的-20到19,映射到实际的优先级范围是100-139。(值越小进程优先级越高)
更多关于进程优先级参考http://www.linuxidc.com/Linux/2016-05/131244.htm

查看nice值:  ps ax -o pid,nice,comm开始执行程序时指定nice值:         nice -n 优先级数字  进程名称example: nice -n -5 /usr/local/mysql/bin/mysqld_safe       ###开启mysqld_safe并且指定程序优先级为-5修改已存在进程的nice值:        renice -n 优先级数字    进程pidexample:renice -n -10   3000                                ###PID为3000的进程nice设为-10


5.进程的前后台调用

命令&                 ##进程在shell后台运行ctrl +z                 ##把占用shell的进程打入后台停止jobs                    ##查看被打入后台的进程信息fg job号             ##把指定进程调回前台bg job号             ##运行后台停止进程ctrl +c             ##关闭占用shell进程



kill和 killall命令

kill        信号          pidkillall     信号          进程名称pkill   -u  username    ##结束某个用户的所有进程
信号信号 1        ##reload进程信号 2        ##ctrl +c 删除进程在内存中的信息 信号 3        ##内存中的鼠标信息清除信号 9        ##强行关闭进程信号 15       ##正常关闭进程信号 18       ##开启停止的进程信号 19       ##停止正在运行的进程信号 20       ##ctrl +z列出所有信号名称  kill   -l


top命令:
top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。
在按下top命令的时候我们可以给一些参数但这个命令最重要的还是它的交互式用法,就是在按下top命令后统信息独占前台的情况下我们按下一些键使得top输出我们想要的结果。
h或者? 显示帮助画面,给出一些简短的命令总结说明。
  k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
  i 忽略闲置和僵死进程。这是一个开关式命令。
  q 退出程序。
  r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
  S 切换到累计模式。
  s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
  f或者F 从当前显示中添加或者删除项目。
  o或者O 改变显示项目的顺序。
  l 切换显示平均负载和启动时间信息。
  m 切换显示内存信息。
  t 切换显示进程和CPU状态信息。
  c 切换显示命令名称和完整命令行。
  M 根据驻留内存大小进行排序。
  P 根据CPU使用百分比大小进行排序。
  T 根据时间/累计时间进行排序。
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

原创粉丝点击