ps
ps(process state)命令用于列出当前的进程。可以显示详细的进程信息,包括:
•用户识别符(UID),它确定进程的特权
•唯一进程识别符(PID)
•CPU和已经花费的实时时间
•进程在各种位置上分配的内存数量
•进程的位置STDOUT,称为控制终端
•当前的进程状态
ps支持三种选项格式:
•UNIX(POSIX)选项,可以分组但必须以连字符开头
•BSD 选项,可以分组但不可与连字符同用
•GNU 长选项,以双连字符开头
ps(process state),显示进程信息。注意事项:
•加了[]中括号的,表示内核线程,通常位于顶部
•exiting或defunct表示僵尸进程
ps 的一些常用命令
//常用选项:
a //显示所有与终端有关的进程
u //显示进程是由哪个用户启动的
x //显示所有与终端无关的进程
-e //显示所有进程,与-A效果相同
-l //以长格式显示
-F //显示更详细的完整格式的进程信息
-f //显示更详细的完整格式的进程信息
-H //以进程层级格式显示进程相关信息
-o //根据自己的需要选择要显示的字段
[root@localhost ~]# ps -o pid,comm,ni //表示只显示进程号,命令,nice值三个字段
PID COMMAND NI
8828 bash 0
9844 ps 0
//aux结果解析:
VSZ //Virtual memory SiZe,虚拟内存集
RSS //ReSident Size,常驻内存集
STAT //进程状态
TIME //运行时的累积时长
//ps命令结果解析:
NI //nice值
PRI //优先级
PSR //进程运行在哪个CPU核心上
RTPTRIO //实时优先级
C //运行的CPU编号
STIME //进程的启动时间
VSZ //Virtual memory SiZe,虚拟内存集
RSS //ReSident Size,常驻内存集
STAT //进程状态
TIME //运行时的累积时长
例
[root@localhost ~]# ps -ef| head -5
//-e //显示所有进程,与-A效果相同
//-l //以长格式显
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 20:31 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root 2 0 0 20:31 ? 00:00:00 [kthreadd]
root 3 2 0 20:31 ? 00:00:00 [ksoftirqd/0]
root 4 2 0 20:31 ? 00:00:00 [kworker/0:0]
[root@localhost ~]# ps | head -5
PID TTY TIME CMD
1500 pts/0 00:00:00 bash
1522 pts/0 00:00:00 ps
1523 pts/0 00:00:00 head
[root@localhost ~]# ps aux|head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.6 0.3 194512 6424 ? Ss 20:31 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root 2 0.0 0.0 0 0 ? S 20:31 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 20:31 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 20:31 0:00 [kworker/0:0]
[root@localhost ~]# ps a
//a //显示所有与终端有关的进程
PID TTY STAT TIME COMMAND
1470 tty1 Ss+ 0:00 -bash
1500 pts/0 Ss 0:00 -bash
1529 pts/0 R+ 0:00 ps a
[root@localhost ~]# ps u
//u //显示进程是由哪个用户启动的
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1470 0.0 0.1 115388 2032 tty1 Ss+ 20:32 0:00 -bash
root 1500 0.0 0.1 115392 2048 pts/0 Ss 20:32 0:00 -bash
root 1530 0.0 0.0 151064 1796 pts/0 R+ 20:37 0:00 ps u
[root@localhost ~]# ps x
//x //显示所有与终端无关的进程
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
2 ? S 0:00 [kthreadd]
3 ? S 0:00 [ksoftirqd/0]
5 ? S< 0:00 [kworker/0:0H]
[root@localhost ~]# ps -elf|head -5
//-f //显示更详细的完整格式的进程信息
//-e //显示所有进程,与-A效果相同
//-l //以长格式显示
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 48661 ep_pol 20:31 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
1 S root 2 0 0 80 0 - 0 kthrea 20:31 ? 00:00:00 [kthreadd]
1 S root 3 2 0 80 0 - 0 smpboo 20:31 ? 00:00:00 [ksoftirqd/0]
1 S root 5 2 0 60 -20 - 0 worker 20:31 ? 00:00:00 [kworker/0:0H]
[root@localhost ~]#