进程管理

一、进程简介

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

进程管理应用场景
判断服务器健康状态
查看系统中所有进程

杀死进程

进程和程序区别
1)程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。

2)程序和进程无一一对应关系。一个程序可以由多个进程公用;另一方面,一个进程在活动中有可顺序地执行若干个程序

进程分类
系统进程
用户进程
交互进程
批处理进程

守护进程

进程状态

进程管理

二、查看进程

[[email protected]~]# ps aux
#查看系统中所有进程,使用BSD操作系统格式
[[email protected]~]# ps -le

#查看系统中所有进程,使用Linux标准命令格式。

进程管理

•USER:该进程是由哪个用户产生的;
•PID:进程的ID号;
•%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
•%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
•VSZ:该进程占用虚拟内存的大小,单位KB;
•RSS:该进程占用实际物理内存的大小,单位KB;
•TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
•STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:父进程、+:位于后台、用“Z”表示僵死进程,用“<”表示优先级高的进程,用“N”表示优先级较低的进程
•START:该进程的启动时间
•TIME:该进程占用CPU的运算时间,注意不是系统时间

•COMMAND:产生此进程的命令名

top 工具

top命令是监控系统进程必不可少的工具,与ps命令相比,top命令动态实时的显示进程状态,而ps只能显示进程某一时刻的信息,同时,top命令提供了一个交互界面,用户可以根据需要,人性化的定制自己的输出,更清楚的了解进程的实时状态

进程管理

第一行信息为任务队列信息:

进程管理

第二行为进程信息:

进程管理

第三行为CPU信息:

进程管理

第四行为物理内存信息:

进程管理

第五行为交换分区(swap)信息:

进程管理

pidof查看进程PID

pidof–用于查找一个运行的程序的PID。

pstree查看进程树
[[email protected]~]# pstree[选项]
选项:
-p:显示进程的PID

-u:显示进程的所属用户

三、进程优先级

优先级取值范围为[-20,19]

Linux给我们提供的优先级的范围为-20到19,我们启动一个进程时,默认的优先级为0 ,-20的优先级为最大,或者说最高。当然,我们在设置的时候可以写-30,但系统默认为-20。

nice命令
指定程序的运行优先级
格式:nice -n command
例如:nice –n 5 command
renice命令
改变一个正在运行的进程的优先级
格式:renicen pid

例如:renice-5 777

四、终止进程

[[email protected]~]# kill –l

#查看可用的进程信号

进程管理

[[email protected] ~]# kill -1 22354
#重启进程
[[email protected] ~]# kill -9 22368

#强制杀死进程

[[email protected]~]# killall[选项][信号] 进程名
#按照进程名杀死进程
选项:
-i:交互式,询问是否要杀死某个进程

-I:忽略进程名的大小写

[[email protected]~]# pkill [选项] [信号] 进程名
#按照进程名终止进程
选项:
-t 终端号:按照终端号踢出用户

pkill 相当于pgrep+ kill

[[email protected]~]# w
#使用w命令查询本机已经登录的用户
[[email protected]~]# pkill -t -9 pts/1

#强制杀死从pts/1虚拟终端登录的进程