进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源
有些进程很快,一执行就瞬间消失了。例如:ls
命令
而那些守护进程就会在内存中常驻,例如开启nginx的话,会产生一些守护进程
再比如说,每当我们打开一个网页,就会在对方的服务器产生一个进程。所以,在一台服务器上面就有可能有成百上千个nginx进程(不能超过最大进程数,最大并发数)
一、判断服务器健康状态
二、查看系统中所有进程
三、杀死进程
ps aux
#查看系统中所有进程,使用BSD操作系统格式
#建议使用 ps aux
注意:不要使用ps -aux
,否则会报错(虽然命令也会执行,影响不是很大)
ps -le
#查看系统中所有进程,使用Linux标准命令格式
选项
a:显示一个终端的所有进程,除了会话引线
u:显示进程的归属用户及内存的使用情况
x:显示没有控制终端的进程
-l:长格式显示。显示更加详细的信息
-e:显示所有进程,和-A作用一致
常见的状态有:
R:运行
S:睡眠
T:停止状态
s:包含子进程
+:位于后台
pstree [选项]
# -p:显示进程的PID
# -u:显示进程的所属用户
结果:
可以看出init
进程是所有进程的父进程
在Linux当中,远程登录终端最多有256个,所以,就算有一两个远程登录进程没有正确退出(正确退出的方法是输入命令:logout
,而不是直接关闭远程登录的工具),卡在Linux服务器那里,也没什么很大的影响
图中的mysqld───17*[{mysqld}]
说明:除了这个mysql这个主守护进程之外,还有17个mysql子守护进程存在(也就是说,它会把重叠的进程放在一起来显示)
如果我们输入选项-p
,就会把这些重叠的进程分开来显示:
pstree -p