2.1 问题
本例要求掌握查看进程信息的操作,使用必要的命令工具完成下列任务:
- 找出进程 gdm 的 PID 编号值
- 列出由进程 gdm 开始的子进程树结构信息
- 找出进程 sshd 的父进程的 PID 编号/进程名称
- 查看当前系统的CPU负载/进程总量信息
2.2 方案
查看进程的主要命令工具:
ps aux、ps –elf:查看进程静态快照
top:查看进程动态排名
pstree:查看进程与进程之间的树型关系结构
pgrep:根据指定的名称或条件检索进程
2.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:找出进程 gdm 的 PID 编号值
使用pgrep命令查询指定名称的进程,选项-l显示PID号、-x精确匹配进程名:
1. [root@pc207 ~]# host www.tedu.cn 192.168.4.7
2. Using domain server:
3. Name: 192.168.4.7
4. Address: 192.168.4.7#53
5. Aliases:
6.
7. www.tedu.cn has address 192.168.4.100
8. [root@svr7 ~]# host www.tedu.cn 192.168.4.7
9. Using domain server:
10. Name: 192.168.4.7
11. Address: 192.168.4.7#53
12. Aliases:
13.
14. www.tedu.cn has address 1.2.3.4
Top
步骤二:列出由进程 gdm 开始的子进程树结构信息
使用pstree命令,可以提供用户名或PID值作为参数。通过前一步已知进程gdm的PID为1584,因
此以下操作可列出进程gdm的进程树结构:
步骤三:找出进程 sshd 的父进程的 PID 编号/进程名称
要查看进程的父进程PID,可以使用ps –elf命令,简单grep过滤即可。找到进程sshd所在行对应
到的PPID值即为其父进程的PID编号。为了方便直观查看,建议先列出ps表头行,以分号隔开再执
行过滤操作。
然后再根据pstree –p的结果过滤,可获知PID为1的进程名称为systemd:
步骤四:查看当前系统的CPU负载/进程总量信息
1. [root@svr7 ~]# pgrep -lx gdm
2. 1584 gdm
3. [root@svr7 ~]# pstree -p 1584
4. gdm(1584)-±Xorg(1703)
5. |-gdm-session-wor(2670)-±gnome-session(2779)-±gnom+
6. | | |-gnom+
7. | | |-{gno+
8. | | |-{gno+
9. | | `-{gno+
10. | |-{gdm-session-wor}(2678)
11. | `-{gdm-session-wor}(2682)
12. |-{gdm}(1668)
13. |-{gdm}(1671)
14. `-{gdm}(1702)
15. [root@svr7 ~]# ps -elf | head -1 ; ps -elf | grep sshd
16. F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
17. 4 S root 1362 1 0 80 0 - 20636 poll_s Jan05 ? 00:00:00 /usr/sbin/sshd –D
18. … … //可获知进程sshd的父进程PID为1
19. [root@svr7 ~]# pstree -p | grep ‘(1)’
20. systemd(1)-±ModemManager(995)-±{ModemManager}(1018) Top
使用top命令,直接看开头部分即可;或者 top -n 次数:
观察Tasks: 485 total部分,表示进程总量信息。
观察load average: 0.02, 0.03, 0.05 部分,表示CPU处理器在最近1分钟、5分钟、15分钟内的平均
处理请求数(对于多核CPU,此数量应除以核心数)。
对于多核CPU主机,如果要分别显示每颗CPU核心的占用情况,可以在top界面按数字键1进行
切换: