文章目录
进程管理常用命令
查看进程命令:ps
语法
ps [选项]
范例
# 通过进程名,过滤进程
(base) [root@localhost init.d]# ps -ef|grep nginx
root 2242 1 0 2020 ? 00:00:00 nginx: master process openresty -p /usr/local/apisix -c /usr/local/apisix/conf/nginx.conf
nobody 2243 2242 0 2020 ? 03:32:51 nginx: worker process
nobody 2244 2242 0 2020 ? 03:33:21 nginx: worker process
nobody 2245 2242 0 2020 ? 03:32:13 nginx: worker process
nobody 2246 2242 0 2020 ? 03:31:24 nginx: worker process
nobody 2247 2242 0 2020 ? 03:33:38 nginx: worker process
nobody 2248 2242 0 2020 ? 03:32:34 nginx: worker process
nobody 2249 2242 0 2020 ? 03:31:16 nginx: worker process
nobody 2250 2242 0 2020 ? 03:32:10 nginx: worker process
nobody 2251 2242 0 2020 ? 00:00:45 nginx: cache manager process
root 12728 12669 0 Feb03 ? 00:00:00 nginx: master process nginx -g daemon off;
查看系统健康状态命令:top
语法
top
输出值介绍
(base) [root@localhost init.d]# top
top - 11:53:50 up 129 days, 8:07, 1 user, load average: 0.03, 0.05, 0.05
Tasks: 297 total, 1 running, 296 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 0.4 sy, 0.0 ni, 98.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16266044 total, 3081708 free, 8447560 used, 4736776 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 6623740 avail Mem
- 第一行-任务队列信息
数据 | 描述 |
---|---|
11:53:50 | 系统当前时间 |
up 129 days, 8:07 | 系统的运行时间 |
1 user | 当前登录了一个用户 |
load average: 0.00, 0.00, 0.00
| 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。 |
- 第二行-进程信息
数据 | 描述 |
---|---|
Tasks: 95 total | 系统中的进程总数 |
1 running | 正在运行的进程数 |
94 sleeping | 睡眠的进程 |
0 stopped | 正在停止的进程 |
0 zombie | 僵尸进程。如果不是0,需要手工检查僵尸进程 |
- 第三行-CPU信息
数据 | 描述 |
---|---|
Cpu(s): 0.1%us | 用户模式占用的CPU百分比 |
0.1%sy | 系统模式占用的CPU百分比 |
0.0%ni | 改变过优先级的用户进程占用的CPU百分比 |
99.7%id | 空闲CPU的CPU百分比 |
0.1%wa | 等待输入/输出的进程的占用CPU百分比 |
0.0%hi | 硬中断请求服务占用的CPU百分比 |
0.1%si | 软中断请求服务占用的CPU百分比 |
0.0%stst(Steal time) | 虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。 |
- 第四行-物理内存信息
数据 | 描述 |
---|---|
Mem: 625344k total
| 物理内存的总量,单位KB |
571504k used | 已经使用的物理内存数量 |
53840k free | 空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存了 |
65800k buffers | 作为缓冲的内存数量 |
- 第五行-交换分区信息
数据 | 描述 |
---|---|
Swap: 524280k total | 交换分区(虚拟内存)的总大小 |
0k used | 已经使用的交互分区的大小 |
524280k free | 空闲交换分区的大小 |
409280k cached | 作为缓存的交互分区的大小 |
查看进程数命令(需要单独安装):pstree
语法
pstree [选项]
选项介绍
- -p: 显示进程的PID
- -u: 显示进程的所属用户
范例
无
终止进程命令 :kill/pkill
语法
- kill [信号] PID
- pkill [选项][信号] 进程名
- 选项:-t 终端号:按照终端号踢出用户
注:kill 通过PID进程终止,pkill通过进程名终止。
范例
# 强制终止进程
kill -9 PID
pkill -9 uwsgi
# 重启进程
kill -1 PID
# 终止进程
kill [-15] PID
# 使用w命令查询本机已经登录的用户
[root@localhost ~]# w
# 强制杀死从pts/1虚拟终端登录的进程
[root@localhost ~]# pkill -t -9 pts/1
# 所以经常用来检查一个进程是否存在,存在返回0;不存在返回1;
kill -0 pid 不发送任何信号,但是系统会进行错误检查。
# 检测nginx进程是否存在,并将检测结果写入日志
killall -0 nginx > /tmp/nginx.log