在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]
其中显示了:
1、USER 哪个用户启动了这个命令 2、PID 进程ID 3、 CPU占用率 4、MEM 内存使用量 5、VSZ 如果一个程序完全驻留在内存的话需要占用多少内存空间 6、RSS 当前实际占用了多少内存 7、TTY: 终端的次要装置号码 (minor device number of tty) 8、STAT 进程当前的状态("S":中断 sleeping,进程处在睡眠状态,表明这些进程在等待某些事件发生--可能是用户输入或者系统资源的可用性;"D":不可中断 uninterruptible sleep;"R":运行 runnable;"T":停止 traced or stopped;"Z":僵死 a defunct zombie process) 9、START 启动命令的时间点 10、TIME 进程执行起到现在总的CPU暂用时间 11、COMMAND 启动这个进程的命令
一般来说,系统管理员关心的只是 程序的PID号码、内存与CPU的使用率、命令的名字、用户采用的终端等等。
$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]
其中显示了:
1、UID 用户号 2、PID 进程ID 3、PPID 父进程号 4、C CPU占用率 5、TTY 终端的次要装置号码 (minor device number of tty) 6、TIME 进程执行起到现在总的CPU暂用时间 7、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命令可以很好的查看和操作进程,使得在进程管理很方便。
参考:
https://cloud.tencent.com/developer/article/1357618 (linux系统下ps -aux和ps -ef命令参数的作用及区别详解)