ps
ps命令用于显示当前进程 (process) 的状态。
什么是进程
进程就是一个程序的执行实例,也就是正在执行的程序。一个程序可能启动多个进程。Linux中进程用进程号表示,也就是PID
ps命令常用的方式1: ps -ef
ps -ef :显示所有进程及命令行等信息
image.png
每一列的含义
UID :用户ID、但输出的是用户名
PID :进程的ID
PPID :父进程ID
C :进程占用CPU的百分比
STIME :进程启动到现在的时间 (运行时间)
TTY :该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
CMD :进程的名称 或者 命令的名称和参数
ps命令常用的方式2: ps aux
ps aux :同样是显示所有进程及信息,不过格式略有不同,更详细
image.png
每一列的含义
USER :用户名
PID :进程的ID
%CPU :进程占用的CPU百分比
%MEM :占用内存的百分比
VSZ :该进程使用的虚拟內存量(KB)
RSS :该进程占用的常驻內存量(KB)
TTY : 同 ps -ef 的TTY
STAT :进程的状态 (下面有详细解释)
START :该进程被触发启动时间
TIME :该进程实际使用CPU运行的时间
COMMAND :同 ps -ef 的CMD
STAT 的常见状态及含义 作为了解就行
D:无法中断的休眠状态(通常 IO 的进程);
R:正在运行可中在队列中可过行的;
S:处于休眠状态;
T :停止或被追踪;
W:进入内存交换 (从内核2.6开始无效);
X :死掉的进程 (基本很少见);
Z :僵尸进程;
N:优先级较低的进程
L:有些页被锁进内存;
s:进程的领导者(在它之下有子进程);
l :多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
:位于后台的进程组;
结合 grep 使用:找到nginx相关的进程信息
ps -ef | grep nginx
image.png
可以看到共找到三条信息
第一个是nginx主进程
第二个是nginx的工作进程
第三个是 grep nginx的进程,也就是ps -ef | grep nginx命令 的进程
使用ps aux 结合grep查找nginx进程的相关信息
ps aux | grep nginx
image.png
与ps -ef | grep nginx所显示信息差不多,不过多了ps aux命令中的一些信息,如 %CPU ,%MEM等