一、Linux的进程
1、在Linux中,每个执行的程序(代码)都称为一个进程。每个进程都分配一个ID号。
2、每个进程都会对应一个父进程,而这个父进程可以复制多个子进程。
3、每个进程都可能以两种方式存在:前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到但进程,通常使用后台方式执行。
4、一般系统但服务都是以后台进程但方式存在,而且都会常驻在系统中,知道关机才结束。
二、显示系统执行的进程
1、查看进程使用的指令是:ps ,一般来说使用的参数是 ps -aux 或者 ps -ef
1)ps aux 是用BSD的格式来显示、其格式如下:
-a:显示当前终端的所有进程信息
-u:以用户的格式显示进程信息
-x:显示后台进程进行的参数
USER:用户名称
PID:进程号
%CPU:进程占用CPU的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位:KB)
RSS:进程占用的物理内存大小(单位:KB)
TTY:终端名称,缩写
STAT:进程状态,其中
S:表示睡眠,
s:进程的领导者(在它之下有子进程)
N:优先级较低的进程
R:表示正在运行,
D:无法中断的休眠状态(通常 IO 的进程)
Z:僵死进程,
T:被跟踪或者被停止等等。
TIME:CPU时间,即进程使用CPU的总时间
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示。
2)ps -ef 是用标准的格式显示进程的、其格式如下:
-e:显示所有进程
-f:全格式
UID:用户ID、但输出的是用户名
PID:进程的ID
PPID:父进程ID
C:进程占用CPU的百分比,CPU用于计算执行优先级的因子,数值越大,表明进程是CPU密集型运算,执行优先级会降低,数值越小,表明进程是I/O密集型运算,执行优先级会提高。
STIME:进程启动到现在的时间
TTY:该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程
CMD:命令的名称和参数
3)查看某个进程:如java
ps -ef | grep java
三、终止进程 kill 和 killall
1、基本语法:
kill [选项] 进程号 :通过进程号杀死进程
killall 进程名称 :通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用。
2、常用选项:
-9 :表示强制进程立即停止
3、案例:
3.1、踢掉某个非法登录用户
3.2、终止远程登录服务sshd,在适当时候再次重启 sshd 服务
四、查看进程树 pstree
1、语法:
pstree [选项] :可以更加直观地来看进程信息
2、常用选项:
-p:显示进程的PID
-u:显示进程的所属用户
3、案例:
3.1 以树状的形式显示进程的pid
3.2 以树状的形式显示进程的用户id