1.10 进程管理类
一般守护进程是以d结尾的
在Centos7里面服务在/usr/lib/systemd/system里面
利用管道筛选以d.service结尾的服务
这些基本上都是守护进程了
- 进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地 址空间,并占用一定的系统资源。
1.10.1 ps 查看当前系统进程状态
ps:process status 进程状态
1.10.1.1基本语法
ps aux | grep xxx (功能描述:查看系统中所有进程)
ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)
1.10.1.2选项说明
选项 | 功能 |
---|---|
a | 列出带有终端的所有用户的进程 |
x | 列出当前用户的所有进程,包括没有终端的进程 |
u | 面向用户友好的显示风格 |
-e | 列出所有进程 |
-u | 列出某个用户关联的所有进程 |
-f | 显示完整格式的进程列表 |
1.10.1.3功能说明
(1)ps aux 显示信息说明
USER:该进程是由哪个用户产生的
PID:进程的 ID 号
%CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源; %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源; VSZ:该进程占用虚拟内存的大小,单位 KB;
RSS:该进程占用实际物理内存的大小,单位 KB;
TTY:该进程是在哪个终端中运行的。对于 CentOS 来说,tty1 是图形化终端, tty2-tty6 是本地的字符界面终端。pts/0-255 代表虚拟终端。
STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、 Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示 、<:表示当前进程是比较高的优先级、N:表示当前进程是比较低的优先级
START:该进程的启动时间
TIME:该进程占用 CPU 的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
(2)ps -ef 显示信息说明
UID:用户 ID
PID:进程 ID
PPID:父进程 ID
C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算, 执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU 时间
CMD:启动进程所用的命令和参数
1.10.1.4经验技巧
如果想查看进程的 CPU 占用率和内存占用率,可以使用 aux;
如果想查看进程的父进程 ID 可以使用 ef
1.10.1.5内存置换算法LRU
最近最少使用(最长时间)淘汰算法(Least Recently Used)。LRU是淘汰最长时间没有被使用的页面
LRU 关键是看页面最后一次被使用到发生替换的时间长短,时间越长,页面就会被置换
1.10.1.5查看当前的所有进程的CPU占用率和内存占用率
- [root@hadoop100 ~]# ps aux
1.10.1.6查看当前的所有进程的父进程ID
[root@hadoop100 ~]# ps -ef
1.10.1.7查看与sshd相关进程
[root@hadoop100 ~]# ps -ef | grep sshd
在开一个进程
在以cat用户开一个进程
1.10.2 kill 终止进程
1.10.2.1基本语法
kill [选项] 进程号 (功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这 在系统因负载过大而变得很慢时很有用)
1.10.2.2选项说明
选项 | 功能 |
---|---|
-9 | 表示强迫进程立即停止 |
1.10.2.3杀死cat用户登录进程
不管杀死2827还是2823都是把cat用户登录删除,作用是一样的
1.10.2.4误把sshd后台守护进程kill
这时候没有了sshd守护进程了,那么远程登录就都登录不上了,只有再把sshd守护进程开启才可以再次远程登录,如果没有开启sshd守护进程,把所有的root进程的远程登录关掉,那么只能用主机操作了
- [root@hadoop100 ~]# systemctl start sshd
1.10.2.5 用-9强行杀死
- [root@hadoop100 ~]# kill -9 3092
1.10.2.6用killall 杀死所有进程
用这个的时候一定要谨慎使用
比如将sshd全部杀死,这样的话远程登录的全部停了,而且也不能再次远程登录了,只能在主机上打开sshd守护进程才可以,这个就不演示了
命令是killall sshd
有兴趣的小伙伴可以去尝试一下
1.10.3 pstree 查看进程树
1.10.3.1基本语法
pstree [选项]
1.10.3.2选项说明
选项 | 功能 |
---|---|
-p | 显示进程的 PID |
-u | 显示进程的所属用户 |
1.10.3.3在使用pstree之前要先安装下pstree
- [root@hadoop100 ~]# yum install pstree
1.10.3.4显示进程
- [root@hadoop100 ~]# pstree
1.10.3.5显示进程pid (-p)
- [root@hadoop100 ~]# pstree -p
1.10.3.6显示所属用户 (-u)
- [root@hadoop100 ~]# pstree -u
1.10.5 netstat 显示网络状态和端口占用信息
1.10.5.1基本语法
netstat -anp | grep 进程号 (功能描述:查看该进程网络信息)
netstat –nlp | grep 端口号 (功能描述:查看网络端口号占用情况)
1.10.5.2选项说明
选项 | 功能 |
---|---|
-a | 显示所有正在监听(listen)和未监听的套接字(socket) |
-n | 拒绝显示别名,能显示数字的全部转化成数字 |
-l | 仅列出在监听的服务状态 |
-p | 表示显示哪个进程在调用 |
1.10.5.3查看网络信息
- [root@hadoop100 ~]# netstat -anp
选项 | 功能 |
---|---|
Proto | 协议 |
Recv-Q | 还没有拷贝出来的字节数量 |
Send-Q | 远程主机还没有确认收到的字节数量 |
Local Address | 本地地址 |
Foreign Address | 远程地址 |
State | 状态 |
PID/Program name | PID和进程的名字 |
1.10.5.4通过进程号查看sshd进程的网络信息
- [root@hadoop100 ~]# netstat -anp | grep sshd
1.10.5.5查看某端口号是否被占用
- [root@hadoop100 ~]# netstat -nltp | grep 22
详细的请看我之前发的博客
linux常用命令下https://blog.csdn.net/Redamancy06/article/details/125349887
linux常用命令中https://blog.csdn.net/Redamancy06/article/details/125327352
linux常用命令上https://blog.csdn.net/Redamancy06/article/details/125317329