ps
Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps -aux。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps -aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。
常见参数:
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
-ef 显示所有用户的进程,用ASCII字符显示树状结构
ps -ef
ps -ef 是以System V方式显示,该种方式比BSD方式显示的多。
e 显示所有用户的进程(all processes)此参数的效果和指定"a"参数相同 f 用ASCII字符显示树状结构,表达程序间的相互关系(ASCII art forest)。
:ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Mar07 ? 00:01:36 /sbin/init maybe-ubiquity
其中各列的内容意思如下:
- UID : 用户ID、但输出的是用户名
- PID : 进程的ID
- PPID : 父进程ID
- C : 进程占用CPU的百分比
- STIME : 进程启动到现在的时间
- TTY : 该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程
- TIME : 进程执行起到现在总的CPU暂用时间
- CMD : 启动这个进程的命令和参数
ps -aux
ps -aux 是以BSD方式显示。
- a 显示所有用户的进程(show processes for all users)
- u 显示用户(display the process’s user/owner)
- x 显示无控制终端的进程(also show processes not attached to a terminal)
:ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 78088 8812 ? Ss Mar07 1:36 /sbin/init maybe-ubiquity
- USER : 哪个用户启动了这个命令
- PID : 进程ID
- %CPU : CPU占用率
- %MEM : 内存使用量
- VSZ : 如果一个程序完全驻留在内存的话需要占用多少内存空间
- RSS : 当前实际占用了多少内存
- TTY : 该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程
- STAT : 进程当前的状态(“S”:中断 sleeping,进程处在睡眠状态,表明这些进程在等待某些事件发生–可能是用户输入或者系统资源的可用性;“D”:不可中断 uninterruptible sleep;“R”:运行 runnable;“T”:停止 traced or stopped;“Z”:僵死 a defunct zombie process;“W”: 没有足够的记忆体分页可分配;“L”: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O) ;"<": 高优先序的行程;“N”: 低优先序的行程)
- START : 启动命令的时间点
- TIME : 进程执行起到现在总的CPU暂用时间
- COMMAND : 启动这个进程的命令