显示系统进程的命令最常用的有ps -ef 和ps aux。
这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。
(1)一般用法:
ps -ef | grep ***
ps aux | grep ***
ps命令将某个进程显示出来。将某个时间点的进程运行情况选取下来。
grep命令是查找,它能使用正则表达式搜索文本,并把匹配的行打印出来;
中间的|是管道命令 是指ps命令与grep同时执行
(2)ps -ef 介绍:
以下这条命令是检查mediation-cron进程是否存在:ps -ef |grep mediation-cron
ps -ef 是用标准的格式显示进程的,字段含义如下:
(3)ps aux 介绍:
以下这条命令是检查mediation-cron进程是否存在:ps aux |grep mediation-cron
ps aux 是用BSD的格式来显示、其格式如下:
其中STAT状态位常见的状态字符有
- D //无法中断的休眠状态(通常 IO 的进程);
- R //正在运行可中在队列中可过行的;
- S //处于可中断的休眠状态; 一般情况下,进程列表中的绝大多数进程都处于这种状态.因为个位数的CPU要应付几十上百个的进程,只能让绝大多数进程睡眠,否则CPU响应不来。
- T //停止或被追踪;
- W //进入内存交换 (从内核2.6开始无效);
- X //死掉的进程 (基本很少见);
- Z //僵尸进程;
- < //优先级高的进程
- N //优先级较低的进程
- L //有些页被锁进内存;
- s //进程的领导者(在它之下有子进程);
- l //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
- + //位于后台的进程组;