进程管理
ps
一直都很困惑为什么有时候ps
命令后边的参数加-
,有时候不加。比如ps -ef
和ps aux
到底什么区别?
今天终于找到了对于ps
命令的详细解释。每个参数的具体意义就不列出了,大部分也不怎么用,主要列一下输出结果的解释。
因为ps
曾经有着不同的版本,所以也就有了3种不同类型的参数,待我一一道来:
Unix-like
Unix风格参数从AT&T而来,常用的ps -ef
就是这个系列的。在结果中,包含了进程信息:
意义 | |
---|---|
UID | 启动进程的用户 |
PID | 进程的进程ID |
PPID | 父进程的进程号 |
C | 进程生命周期中的CPU利用率 |
STIME | 进程启动时的系统时间 |
TTY | 进程启动时的终端设备 |
TIME | 运行进程需要的累计CPU时间 |
CMD | 启动的程序名称 |
加参数-l
之后,会有更多信息:
意义 | |
---|---|
F | 内核分配给进程的系统标记 |
S | 进程的状态 |
PRI | 进程优先级(数字越大优先级越低) |
NI | 谦让度值用来参与决定优先级 |
ADDR | 进程的内存地址 |
SZ | 如进程被换出,所需交换空间的大致大小 |
WCHAN | 进程休眠的内核函数地址 |
其中,S列(进程的状态)具体意义是:
S列 | 意义 |
---|---|
O | 正在运行 |
S | 在休眠 |
R | 可运行,正等待 |
Z | 僵化进程,已结束,但父进程已不存在 |
T | 停止 |
BSD-like
来自于伯克利,输出结果有一小部分不同:
意义 | |
---|---|
VSZ | 进程在内存中的大小,以千字节KB为单位 |
RSS | 进程在未换出时占用的物理内存 |
STAT | 代表当前进程状态的双字符状态码。 |
其中,STAT列的第一个字符与Unix风格的S列相同,后面的参数进一步说明进程状态:
STAT(从第二列开始) | 意义 |
---|---|
< | 该进程运行在高优先级 |
N | 运行在低优先级 |
L | 有页面锁定在内存中 |
s | 是控制进程 |
l | 多线程 |
+ | 运行在前台 |
GNU-like
就是加两个-
的参数,最有特色的是--forest
,可以显示进程的层级信息。
top 实时监测进程
输出结果中上边显示的是系统概况,第二行的Tasks指的就是进程。下半部分就是进程的详细信息:
意义 | |
---|---|
PID | 进程的ID |
USER | 属主 |
PR | 优先级 |
NI | 谦让度 |
VIRT | 进程占用虚拟内存总量 |
RES | 进程占用物理内存总量 |
SHR | 和其他进程共享内存总量 |
S | 进程状态 |
TIME+ | 自启动开始的CPU时间总量 |
COMMAND | 进程对应的命令名 |
磁盘空间
df
查看磁盘的使用情况,一般就alias df='df -h'
了,即以易读的形式显示。
du
具体到某一个文件夹,可以用du
命令,需要明确几个参数:
参数 | 意义 |
---|---|
-c | 显示所有已列出文件总大小(列出每个文件和total); |
-h | 易读方式列数; |
-s | 显示每个输出参数的总计(不列出子文件夹)。 |
网友评论