1 ps命令介绍
ps命令用来查看系统上的进程信息。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多 的资源等等
1.1 选项和参数
- -a:显示所有进程,包括其他用户的进程。
- -u <用户>:仅显示指定用户的进程信息。
- -e:显示所有进程,等同于 -A 参数。
- -f:显示进程的详细信息,包括进程的 PID、PPID、CPU 使用率、内存使用量等。
- -p <PID>:仅显示指定 PID 的进程信息。
1.2 输出结果
ps aux:查看系统所有的进程,用BSD的格式来显示(显示内存)
[root@host-192-168-30-156 tecs]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 1.6 0.0 60804 13236 ? SNs Jul25 265:40 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root 2 0.0 0.0 0 0 ? S Jul25 0:02 [kthreadd]
root 3 0.0 0.0 0 0 ? S Jul25 4:53 [ksoftirqd/0]
- USER 用户名
- %CUP 进程占用的CUP百分比
- %MEM 占用内存的百分比
- VSZ 该进程使用的虚拟内存量(KB)
- RSS 该进程占用的固定内存量(KB)(驻留页中的数量)
- STAT 进程的状态
- START 该进程被触发启动的时间
- TIME 该进程实际使用CUP运行的时间
- COMMEND 所执行的命令
ps -ef:用标准的格式显示进程(显示父进程和TTY)
[test]$ ps -ef
ID PID PPID C STIME TTY TIME CMD
root 1 0 6 1月04 ? 10:11:10 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
root 2 0 0 1月04 ? 00:00:00 [kthreadd]
root 3 2 0 1月04 ? 00:00:00 [rcu_gp]
- UID 用户的ID ,但输出的是用户名
- PID 进程的ID
- PPID 父进程的ID
- C 进程占用CPU的百分比
- STIME 进程启用到现在的时间
- TTY 该进程在哪个终端上运行,若与终端无关,则显示?,若为pts/0等,则表示由网络连接主机进程
- CMD 命令的名称和参数
ps -l:仅查看自己的bash相关进程
[root@host-192-168-30-156 tecs]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
1 S 0 4816 4813 0 80 0 - 51608 poll_s pts/3 00:00:00 sudo
4 S 0 4817 4816 3 80 0 - 29091 do_wai pts/3 00:00:00 bash
0 R 0 4881 4817 0 80 0 - 38312 - pts/3 00:00:00 ps
- F:代表进程标志flag,说明这个进程的权限:4表示进程权限是root,1表示此子进程只执行复制(fork),没有实际执行(exec)
- S:进程的状态(R:运行,S:睡眠,D:睡眠且不可唤醒,T:停止状态,Z:僵尸状态,已经终止但是无法删除出内存)
- PRI/NI:Priority/Nice的缩写,代表此进程被执行的优先级,越小越好
- ADDR/SZ/WCHAN:进程在内存的地址/用掉多少内存/进程是否运行(【-】代表正在运行)
- TTY:登陆者的终端位置,远程登录是pts/3
- TIME:进程执行花费CPU的时间
- CMD:具体的命令