ps (Unix)
在大多数类Unix操作系统中,ps
程序(“process status”的简称)可以显示当前运行的进程。一个相关的Unix工具top则可以查看运行进程的实时信息。
在Windows PowerShell中,ps
是Get-Process
cmdlet的预定义命令别名,它和Unix中的ps
本质上是相同的。
示例
输出示例:
# ps
PID TTY TIME CMD
7431 pts/0 00:00:00 su
7434 pts/0 00:00:00 bash
18585 pts/0 00:00:00 ps
用户还可以利用ps命令和grep
结合(参见pgrep和pkill命令)来查找一个进程的信息,例如它的进程ID:
$ # 查找`firefox-bin`的PID为2701
$ ps -A | grep firefox-bin
2701 ? 22:16:04 firefox-bin
或直接使用pgrep:
$ pgrep -l firefox-bin
2701 firefox-bin
查看以root用户运行的进程:
# ps -U root -u
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
root 1 0.0 0.0 9436 128 - ILs Sun00AM 0:00.12 /sbin/init --
分解
列名 | 内容 |
---|---|
%CPU | 进程正在使用多少个CPU |
%MEM | 进程正在使用多少内存 |
ADDR | 进程的内存地址 |
C或CP | CPU使用率和调度信息 |
COMMAND* | 进程名,包括参数(如果有的话) |
NI | nice值 |
F | 标志 |
PID | 进程ID |
PPID | 父进程ID |
PRI | 进程优先级 |
RSS | 真实内存用量 |
S or STAT | 进程状态码 |
START or STIME | 进程启动时间 |
SZ | 虚拟内存用量 |
TIME | 总CPU用量 |
TT或TTY | 与进程相关的终端 |
UID或USER | 进程所有者的用户名 |
WCHAN | 进程所等待事件的内存地址 |
* = 通常被简写
选项
ps有很多选项。在支持SUS和POSIX标准的操作系统上,ps常以选项-ef运行,其中“-e”选择每一个(every)进程,“-f”指定“完整”(full)输出格式。这些系统上的另一个常见选项是-l,它指定“长”(long)输出格式。
由于历史原因,大多数源自BSD的系统无法接受SUS和POSIX的标准选项(例如,“e”或“-e”选项将显示环境变量)。在这样的系统中,ps常使用辅助非标准选项aux,其中“a”列出了一个终端上的所有进程,包括其他用户运行的,“x”列出所有没有控制终端的进程,“u”添加了一列显示每个进程的控制用户。需要注意的是,为了最大的兼容性,使用此语法时“aux”前没有“-”。此外,在aux之后添加“ww”可以显示进程的完整信息,包括所有的参数,例如“ps auxww”。
参见
外部链接
- 单一UNIX®规范第7期,由国际开放标准组织发布 – 命令与工具(Commands & Utilities)参考,
- Show all running processes in Linux using ps command(页面存档备份,存于互联网档案馆)
- 单一UNIX®规范第7期,由国际开放标准组织发布 : report a snapshot of the current processes – 参考,
- In Unix, what do the output fields of the ps command mean?(页面存档备份,存于互联网档案馆)