linux系统下ps -aux和ps -ef命令参数的做用及区别详解

在linux系统中,ps是简单而强大的进程查看命令,而ps -aux和ps -ef是打印出全部进程。其中的参数详解以下:ps -aux是以BSD方式显示a显示全部用户的进程(show processes for all users)u 显示用户(display
在linux系统中,ps是简单而强大的进程查看命令,而ps -aux和ps -ef是打印出全部进程。其中的参数详解以下:
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 -ef 是以System V方式显示,该种方式比BSD方式显示的多

  • e 显示全部用户的进程(all processes)此参数的效果和指定"a"参数相同
  • f  用ASCII字符显示树状结构,表达程序间的相互关系(ASCII art forest)

下面看两个命令各自显示哪些内容:

$ps -aux 
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  4828  516 ?        Ss    2014   1:28 init [3]         
root         2  0.0  0.0     0    0 ?        S     2014   0:00 [kthreadd]
root         3  0.0  0.0     0    0 ?        S     2014   0:43 [migration/0]
root         4  0.0  0.0     0    0 ?        S     2014   7:34 [ksoftirqd/0]
root         5  0.0  0.0     0    0 ?        S     2014   0:01 [migration/0]
root         6  0.0  0.0     0    0 ?        S     2014   0:03 [watchdog/0]
root         7  0.0  0.0     0    0 ?        S     2014   3:04 [migration/1]
root         8  0.0  0.0     0    0 ?        S     2014   0:01 [migration/1]
root         9  0.0  0.0     0    0 ?        S     2014   1:44 [ksoftirqd/1]
root        10  0.0  0.0     0    0 ?        S     2014   0:01 [watchdog/1]
root        11  0.0  0.0     0    0 ?        S     2014   2:21 [migration/2]
root        12  0.0  0.0     0    0 ?        S     2014   0:01 [migration/2]

其中显示了:
 
  • USER 哪一个用户启动了这个命令
  • PID 进程ID
  • CPU CPU占用率
  • MEM 内存使用量
  • VSZ 若是一个程序彻底驻留在内存的话须要占用多少内存空间
  • RSS 当前实际占用了多少内存
  • TTY: 终端的次要装置号码 (minor device number of tty)
  • STAT 进程当前的状态("S":中断 sleeping,进程处在睡眠状态,代表这些进程在等待某些事件发生--多是用户输入或者系统资源的可用性;"D":不可中断 uninterruptible sleep;"R":运行 runnable;"T":中止 traced or stopped;"Z":僵死 a defunct zombie process)
  • START 启动命令的时间点
  • TIME 进程执行起到如今总的CPU暂用时间
  • COMMAND 启动这个进程的命令


$ps -ef 
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0  2014 ?        00:01:28 init [3]         
root         2     0  0  2014 ?        00:00:00 [kthreadd]
root         3     2  0  2014 ?        00:00:43 [migration/0]
root         4     2  0  2014 ?        00:07:34 [ksoftirqd/0]
root         5     2  0  2014 ?        00:00:01 [migration/0]
root         6     2  0  2014 ?        00:00:03 [watchdog/0]
root         7     2  0  2014 ?        00:03:04 [migration/1]
root         8     2  0  2014 ?        00:00:01 [migration/1]
root         9     2  0  2014 ?        00:01:44 [ksoftirqd/1]
root        10     2  0  2014 ?        00:00:01 [watchdog/1]
root        11     2  0  2014 ?        00:02:21 [migration/2]
root        12     2  0  2014 ?        00:00:01 [migration/2]


其中显示了:

  • UID 用户号
  • PID 进程ID
  • PPID 父进程号
  • C CPU占用率
  • TTY 终端的次要装置号码 (minor device number of tty)
  • TIME 进程执行起到如今总的CPU暂用时间
  • COMMAND 启动这个进程的命令

通常使用这两个命令的做用是查看预期的进程是否启动,或者杀死指定的进程,例如查看memcached进程是否正常启动:

$ps -ef | grep 'memcached'
work   14896  5034  0 16:30 pts/12   00:00:00 grep memcached
work   27799     1  0  2014 ?        00:01:08 /home/work/local/memcache/bin/memcached -d -m 8096 -p 11215 -c 256

经过grep命令能够查找指定的进程名称,上面例子查找发现正常运行了,但若是我要关闭这个进程,能够经过杀死PID来完成,例如memcached的PID是27799,那么执行下面kill命令便可:

$kill 27799
$ps -ef | grep 'memcached'
work   14896  5034  0 16:30 pts/12   00:00:00 grep memcached

再次查找进程已经消失。


小结:ps命令能够很好的查看和操做进程,使得在进程管理很方便。
相关文章
相关标签/搜索