一、查看进程

ps   aux

查看系统所有的进程数据

ps   -lA

查看所有系统的数据

ps   axjf

连同部分进程树状态

ps参数

-A   显示所有进程,等效 -e

-a   不与terminal有关的所有进程

-u   有效用户相关的进程

-f    更详细的输出进程数据

-l      仅查看自己bash的相关进程

j      工作的格式

l      较详细的将PID的信息列出

x      较完善的输出信息(一般与-a一起使用)

eg:

linux之进程管理(二)-LMLPHP

我们可以看到有很多标志,它们具体的意思是什么呢?

F  ===>   代表这个进程的权限

1表示此进程仅仅可以复制(fork),而不可执行(exec)

4表示此进程的权限为root

S  ===>   代表这个进程的状态

R表示该进程正在运行中(Running)

S表示该进程处于睡眠状态(可被唤醒)

D表示该进程处于睡眠状态(不可被唤醒)

T表示该进程处于停止状态

Z表示该进程处于僵尸状态(进程已被终止,却无法被删除在内存外,CMD后面跟着<defunct>)

C  ===>   表示CPU使用率

PRI/NI  ===>   进程优先级(数值越小表示优先级越高)

ADDR  ===>   该进程所在内存位置

SZ  ===>   该进程占用内存大小

WCHAN  ===>   该进程是否处于运行状态

TTY  ===>   登录者的终端机位置(pts/n表示远程登录)

TIME  ===>   使用掉的CPU时间

CMD  ===>   造成此程序触发该进程的命令

使用ps   aux后会显示如下内容

linux之进程管理(二)-LMLPHP

其中,各字段的意义如下:

USER  ===>   该进程所属用户

PID  ===>   进程唯一标识符

%CPU  ===>   使用掉的CPU资源

%MEM  ===>   使用掉的物理内存

VSZ  ===>   该进程使用掉的虚拟内存量

RSS  ===>   该进程占用的固定内存量

TTY  ===>   表示该进程所属终端机(pts/0表示是远程登录所设进程)

STAT  ===>   进程状态(同上)

START  ===>   该进程被触发启动的时间

TIME  ===>   该进程实际使用CPU运行的时间

COMMAND  ===>   该进程的实际命令

pstree 以进程树的形式显示所有进程

参数列表

-A: 各进程树之间的连接以ASCII码字符来连接

-U:各进程树之间的连接以utf8字符来连接,某些终端可能会有错误

-p:同时列出每个进程的PID

-u: 同时列出每个进程的所属账号名称

-c: 不使用精简法显示进程信息,即显示的进程中包含子进程和父进程

-n: 根据进程 PID 号来排序输出,默认是以程序名排序输出的

eg:

linux之进程管理(二)-LMLPHP

top  动态查看进程的变化

-d  ===>   后面接妙数,指明整个进程界面的更新时间

-b  ===>   以批次的方式执行top

-n  ===>   与-b搭配,需要进行几次的top输出结果

-p  ===>   制定某些个PID来进行检测

运行期间参数

?  ===>   帮助

P  ===>   以CPU使用资源排序

M  ===>   以内存使用资源排序

N  ===>   以PID排序

T  ===>   以使用CPU累计时间排序

k  ===>   给予某个PID一个信号

r  ===>   给予某个PID重新制定一个nice值

q  ===>   退出top功能界面

linux之进程管理(二)-LMLPHP

二、进程的管理

进程是通过信号量来进行管理的,那么有多少信号量呢?我们可以通过

kill   -l

命令查看

eg:

linux之进程管理(二)-LMLPHP

那么如何传递信号量给某个进程呢

kill   -signal   PID

例如我们要杀掉某个进程

linux之进程管理(二)-LMLPHP

可以看到,top进程是被另一个终端给杀死的

killall   -[iTe]   [cmd]

根据命令名称(而不是PID或job number)来给予信号量

参数:

-i  ===>   交互式,会提醒用户

-e  ===>   后面接的命令要一致,但整个完整的命令不能超过15个字符

-I  ===>   忽略大小写,可能带参数

eg:

linux之进程管理(二)-LMLPHP

三、进程优先级

进程的优先级是通过Priority与Nice值确定的

在进程信息中分别由PRI   NI给出,但是PRI是系统内核自动调整的,我们用户是无法设置的。这时候,我们只能通过调整Nice的值来调整优先级了。一般来说

PRI(new) = PRI(old) + Nice

注意:

1.并不是你设置Nice为多少,系统就会给定PRI = PRI + Nice了,者需要你设置合理,并且通过系统的审核

2.nice的值的范围为 -20 ~19(值越小优先级越高)

3.root用户可以调整任何用户包括自己的Nice值(-20~19)

4.一般用户只能调整自己的Nice值(0~19)

5.一般用户只能给自己的Nice值增大(比如第一次为5,第二次只能大于5)。

使用方法

1.一开始执行程序就给予一个特定的Nice值

格式:

nice   -n   [-19~20]  command

eg:

linux之进程管理(二)-LMLPHP

2.调整某个已经存在的PID的Nice的值

格式:

renice  [number]  PID

eg:

linux之进程管理(二)-LMLPHP

05-28 19:23