码迷,mamicode.com
首页 > 系统相关 > 详细

进程管理

时间:2018-04-06 22:37:34      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:进程管理   ps   proc   kill   谦让度nice和renice   

1、什么是进程?
进程是操作系统的一种抽象概念,用来表示正在运行的程序。linux是一种多用户、多进程的操作系统。在linux的内核中,维护着一张表。这张表记录了当前系统中运行的所有进程的各种信息。linux内核会自动完成对进程的控制和调度。当然,这是所有的操作系统都必须拥有的基本功能。
2、关于内核中一些重要的进程信息。
a:进程的内存地址。
b:进程的当前状态。
c:进程正在使用的资源。
d:进程的优先级(谦让度)。
e:进程的属主。
3、进程的一些属性:
(1)PID:进程的ID号。linux不仅自己使用PID来确定进程,还要求用户在管理进程时也提供相应的PID号。且几乎所有的进程管理工具都接收PID号,而不是进程名。
(2)PPID:父进程的PID。所有的进程都必须由另一个进程创建,除了在系统引导时,由内核自主创建并安装的那几个进程。但实质上,linux并没有提供一种可以让应用程序“创建”一个进程的系统调用。应用程序只能通过克隆自己来产生新进程。
(3)UID:进程创建者的用户ID号。
(4)EUID:有效用户的ID号。
(5)NI(谦让度):高谦让度低优先级,低谦让度高优先级。谦让度的值一般在-20~+19之间浮动。
4、进程的一些常用命令:
(1)ps aux:用于显示当前系统上运行的所有进程的信息。这条命令不显示用户的PPID和NI。
(2)ps lax:用于显示当前系统上运行的所有进程的信息。不显示进程属主的用户名,提供PPID和NI显示。
(3)top:用于即时跟踪当前系统中进程的情况。显示的信息占满一页,且10s更新一次,使用CPU资源多的程序会排在前面。
(4)lsof:用于查找某个特定的文件正被哪些进程使用。提供包括PID在内的各种进程信息。用法:lsof 文件名。
(5)kill:向进程发送一个信号。这个信号是什么需要用过选项指定。默认情况下为软件终止操作(-15、-TERM、—SEGTERM),即不加任何选项时。可以使用kill -l查看所有的信号及编号。
常用的kill命令选项有:
信号编号 信号名 描述 默认执行操作
0 EXIT 程序退出时受到该信号 终止
1 HUP 挂起 终止
2 INT 中断 终止
3 QUIT 退出 终止
9 KILL 杀死 终止
11 SEGV 段错误 终止
15 TERM 软件终止 终止
在默认情况下,kill命令向进程发送TERM信号,这个信号表示请求终止某项操作。
使用kill命令不一定可以终止一个进程,原因为:kill命令实质是向进程发送一个信号,那么,程序可以将这个信号“捕捉”,“封锁”或者“忽略”这个信号。但有一个kill信号永远不能被捕捉,就是KILL信号,KILL可以在内核级别杀死一个进程。例:sudo kill -KILL pid。如果这个信号还不能杀死它,重新启动时解决问题的唯一方法。
(6)nice:nice命令可以在启动程序时设置其谦让度。nice命令通过接受一个-n参数增加程序的谦让度值,注意,这里nice命令将-n后面的数值加上默认的谦让度值,作为程序的谦让度值,可以用不带参数的nice选项查看默认的谦让度值。
例如:nice #查看默认谦让度值
0 #系统默认的谦让度值为0
nice -n 2 bc#设置bc以谦让度增量2启动,谦让度为2(0默认+2增量)
(7)renice:renice可以在进程运行时调整其谦让度值。renice是调整“绝对”谦让度值的。
例如:原先bc的谦让度为2,执行:
renice +12 -p 8567 #假设bc的PID为8567 -p选项指定进程PID。
执行完后,bc的谦让度值就为12了。
5、PROC文件系统:
/proc目录下存放着内核有关系统状态的各种有意义的信息,系统运行时,内核会随时向这个目录写入数据。ps和top命令就是从这个地方读取数据的。事实上,这是操作系统向用户提供的一条通往内核的通道,用户可以通过向/proc目录下的文件写入数据来修改操作系统的参数。

进程管理

标签:进程管理   ps   proc   kill   谦让度nice和renice   

原文地址:http://blog.51cto.com/wuweizhu/2095282

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!