ps -o pid,ppid,command? pthreads ps -o pid,ppid,command PID PPID COMMAND2782266 34624 /usr/bin/zsh2825942 2782266 ps -o pid,ppid,command-o表示指定我们想要输出的内容 , 在上面的命令当中:
- pid: 表示当前进程的进程号 。
- ppid: 表示当前进程父进程的进程号 。
- command: 表示执行这个命令的时候输入的命令 。
条目含义pid进程号ppid父进程进程号command执行命令%cpu进程对于cpu的使用率%mem内存占有率comm更加简洁的命令和command一致cputime进程累计使用的CPU时间etime进程开始执行到现在一共过了多长时间stat进程的状态ni进程的优先级user用户名
这里我们在重点谈一下进程的状态 stat , 我们看一个他的输出:
? pthreads ps -o pid,ppid,stat,command PID PPID STAT COMMAND2782266 34624 Ss /usr/bin/zsh2832729 2782266 SN ./sleep.out2832740 2782266 R+ ps -o pid,ppid,stat,command在上面当中 STAT 那一列就是表示进程的状态 , 我们现在仔细分析一下上面字母表示的含义:
STAT 当中字母的含义表:
条目含义D表示不能够被中断的睡眠操作 , 比如说IO操作I内核当中的空闲线程R正在执行或者处于就绪队列当中的进程S可以被中断的睡眠 , 一般是等待某个事件触发T被其他的进程发送的信号给停下来了t被调试或者tracing中Z表示这个进程是一个僵尸进程<表示高优先级N表示低优先级L有页面被所在内存当中 , 也就是说这个页面不会被操作系统换出道对换区当中s表示这个进程是一个 session leaderl是一个多线程程序+表示在前台进程组当中
现在根据上面表格当中的内容我们可以知道:
- 进程 2782266 正在等待某个事件触发 , 而且这个进程是 session leader 。
- 进程 2832729 也是在等待某个事件触发 , 而且是低优先级的进程 。
- 进程 2832740 正在执行 。

文章插图
我们在来看一个多进程程序的例子:
#include <stdio.h>#include <unistd.h>#include <pthread.h>void* func(void* args) { while (1) { /* code */ }}int main() { for(int i = 0; i < 10; i++) { pthread_t tid; pthread_create(&tid, NULL, func, NULL); } while (1) { sleep(1); } return 0;}上面的程序执行完成之后 , ps 的输出结果如下:
? pthreads ps -o pid,ppid,stat,command PID PPID STAT COMMAND2782266 34624 Ss /usr/bin/zsh2840012 2782266 SNl ./sleep.out # 这个进程就是上面那个程序表示的进程2840037 2782266 R+ ps -o pid,ppid,stat,command我们可以看到这个进程的 STAT 当中还有一个 l 表示这是一个多进程的程序 。
总结在本篇文章当中主要给大家介绍了一些常见的 ps 命令的使用方法 , 以及一些常用的输出 , 还有就是输出内容中比较重要的进程状态 , 能够很好的帮助我们实时去了解进程 。
经验总结扩展阅读
- 下月吉星常驻好运常伴 这几个星座迎来大好财运
- 未来30天这几个星座财情兼收 生活浪漫富贵可期
- 未来一周这几个星座财运暴涨 横财到手生活顺心顺意
- 未来五周这4大星座好运连连 收入大涨前途一片光明
- 未来3个月喜多财运多 这4大星座的好运接连不断
- 未来18天得财神庇佑 这几个星座迎好事临门
- 本月下半月这3个星座财神爷找上门 财运喜事齐聚
- 下月祥云缠身好运不断 这几个星座能抓住机会马上就要发大财
- 小米手环6nfc使用体验_小米手环6nfc使用测评
- 哺乳期妈妈这6类食物都少吃