Linux进程控制命令之ps

  • 无参数

    默认情况下只显示在当前终端下执行的进程,不显示其他终端的信息,而且显示的信息只有4列,如下:

    [email protected]:~$ ps

    PID TTY TIME CMD

    17742 pts/14 00:00:00 bash

    30496 pts/14 00:00:00 ps

    四列信息的含义分别是:

    PID: 运行着的命令(CMD)的进程编号

    TTY: 命令所运行的位置(终端)

    TIME: 运行着的该命令所占用的CPU处理时间

    CMD: 该进程所运行的命令

  • 参数-l和-f

    想要得到更多信息就需要加上这两个参数之一,如下:

    [email protected]:~$ ps -l

    F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

    0 S 1000 17742 14494 0 80 0 - 2433 wait pts/14 00:00:00 bash

    0 R 1000 30507 17742 0 80 0 - 1665 - pts/14 00:00:00 ps

    多出来的列的含义为:

    F:进程的旗标,又称信号量,用于进程互斥加锁等,暂时不考虑;

    S:进程的状态(S代表休眠,R代表可运行,Z代表僵尸进程,T代表停止,0代表正在运行)

    UID:用户id,PPID:父进程id

    C:CPU利用率

    PRI:进程的优先级

    NI:nice值,又叫谦让度。。。

    ADDR:进程的内存地址

    SZ:加入进程被换出,所需交换空间的大小

    WCHAR:进程是否正在运行,若是,则为“-”,跟S的作用类似

    TIME:运行进程所需的总CPU时间

    好吧,这些信息很多暂时都用不上或者理解不了,别着急,慢慢来,早晚会用上的.

    [email protected]:~$ ps -f

    UID PID PPID C STIME TTY TIME CMD

    m 17742 14494 0 5月28 pts/14 00:00:00 bash

    m 32105 17742 0 11:55 pts/14 00:00:00 ps -f

    -f显示的信息要少一些,而且有部分不同。

    主要就是STIME,它的含义是该进程被触发的时间或它启动的时间。

  • 参数-A和-e,它们的作用是相同的,都是用来显示全部的进程,而不仅仅是当前终端下的进程,还包括没有在终端运行的进程。
  • 参数 -a,这个参数很神奇,反正我是没弄懂,man上的信息是:Select all processes except both session leaders (see getsid(2)) and processes not associated with a terminal.大概意思是说,显示除控制进程(session leader)和无终端的进程外所有进程。看个例子:

    [email protected]:~$ ps -a

    PID TTY TIME CMD

    24056 pts/18 00:00:00 ps

    我们知道有些进程无须借助终端来运行,它们的TTY这一列显示为“?”,-a选项会过滤掉这类进程;同时-a还会过滤掉控制进程,到底什么是控制进程呢?莫非就是终端本身?如果不加-a参数,结果如下:

    [email protected]:~$ ps

    PID TTY TIME CMD

    23962 pts/18 00:00:00 bash

    24062 pts/18 00:00:00 ps

    这个理解也许是对的。

  • 参数 -d:和-a类似,只不过它不会过滤无终端进程,而只是过滤控制进程——终端。
  • 参数 -u:显示有效用户ID在userlist列表中的进程。这个其实也不太好理解,他后面需要跟一个用户名称,表示只显示该用户相关的进程。但是如果-u后面没有跟用户名,其效果就跟“ps u”是一样的(注意这里的u没有短横线),这也是ps命令复杂的地方,对某些参数有没有短横线差别很大。

    ps u表示Display user-oriented format.如下:

    [email protected]:~$ ps u

    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

    m 24187 0.0 0.1 9732 4324 pts/14 Ss 16:40 0:00 bash

    m 24245 0.0 0.0 6896 1152 pts/14 R+ 16:50 0:00 ps u

    -u经常和-a一起使用,但这时候-a的意思和前面单独使用时是不一样的。总之,-au == -a -u == au,a在这些组合中的意思是all。(好复杂的说。。)

  • 参数-p,后面跟进程id,显示特定进程的信息,等价于没有短横线的p。还有一些进程可以直接将其id放在短横线后面,如:

    [email protected]:~$ ps -1

    PID TTY STAT TIME COMMAND

    1 ? Ss 0:02 /sbin/init

  • 参数-C:后面跟某个命令或程序的全名,显示相关信息。
  • 参数x:通常与 au一起使用,可列出较完整信息。我截取了一部分:
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.0   4584  2580 ?        Ss    5月28   0:02 /sbin/init
    root         2  0.0  0.0      0     0 ?        S     5月28   0:00 [kthreadd]
    root         3  0.2  0.0      0     0 ?        S     5月28  10:10 [ksoftirqd/0]
    root         4  0.0  0.0      0     0 ?        S     5月28   0:00 [kworker/0:0]

    似乎比-f和-l还要详细。

    呃,写到这里已经晕了,参数实在太多,我想以后会根据实际需求再来重新整理一遍。主要的其实就是下面两个组合:

    ps -ef

    ps aux

    然后配合grep用管道撷取相关的进程信息。

时间: 2024-08-08 11:38:16

Linux进程控制命令之ps的相关文章

Linux进程管理命令之ps、dstat、top、htop

Linux的进程及cpu.内存等状况的监测是一件非常重要的事情.这里介绍几个比较常用的工具. 概述:ps命令.dstat命令.top命令.htop命令 一.ps命令 - 进程状态查看工具 工作机制:通过抽取内核提供的/proc/PID(每个进程的PID,有多个)目录下的各进程状态来显示给用户以供查看. 使用格式:ps [options] 选项有三种风格: 1.UNIX风格,选项可以组合在一起且前面跟一个短横线. 2.BSD风格,选项可以组合在一起且前面可以不跟一个短横线. 3.GNU风格,是长选

linux进程控制命令

& 加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &. ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行. jobs 查看当前有多少在后台运行的命令 jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated,但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识:也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被

Linux 进程管理命令之ps

这个命令会显示某一时刻系统的进程状态. ps是通过/proc接口,让管理员查看内核进程状态信息. 为了响应一切皆文件,进程参数模拟成文件系统类型(文件),参数路径模拟成目录 /proc/# 每个进程都有一个进程ID号 这个目录里存放的各种进程的状态信息 启动进程的方式 1.系统启动过程中自动启动,与终端无关的进程 2.用户通过终端启动,与终端相关的进程.一旦终端断开,相关的进程就停止了. 选项 a 显示与终端相关的进程 同样的a选项 显示的不一样,ps进程显示信息有三种风格1.UNIX 2.BS

Linux 进程管理命令ps、top、kill、nice、fg、bg、vmstat、uptime

Linux 进程管理命令: ps process status 查看进行相关信息: system 风格:sysv  有-线引导 BSD风格:BSD ps a:显示所有跟终端有关的进程 u:显示更详细的字段 x:显示所有跟终端无关的进程 常用 ps ax 进程分类: 终端启动(相关)的进程:用户通过命令行启动的进程 跟终端无关的进程:系统启动就自己启动 进程状态: D: 表示不可中断的睡眠 R:表示就绪态 S:表示可中断的睡眠 T:停止 Z:僵死态 <:高优先级进程 N:低优先级进程 +:前台进程

Linux进程控制知识总结

目录 一:进程标识符(ID) 二:进程操作 2.1创建一个进程 2.2 fork函数出错情况 2.3创建一个共享空间的子进程 2.4退出程序 2.5设置进程所有者 三:执行程序 3.1 exec函数 3.2 执行解释器文件 3.3在程序中执行Shell命令 四:关系操作符 4.1等待进程退出 4.2 等待指定的进程 进程控制 -- 一步 一:进程标识符(ID) 进程ID是用来标识进程的编号,就像身份证一样.不同的进程有不同的ID,可以通过ID来查询进程.进程标识符的类型是pit_t,其本质是一个

12个Linux进程管理命令介绍

12个Linux进程管理命令介绍 当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.Linux提供了许多命令来让用户来高效掌控上述的操作. 执行中的程序称作进程.当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.操作系统会有效地管理和追踪所有运行着的进程. 为了管

Linux进程控制编程

一.获取ID #include<sys/types.h> #include<unistd.h> pid_t getpid(void)    获取本进程ID pid_t getppid(void)  获取父进程ID 父进程:现有进程中,创建新的进程. 例:getpid.c #include<stdio.h> #include<unistd.h> #include<stdlib.h> int main() { printf("PID=%d\

Linux进程控制——exec函数族

原文:http://www.cnblogs.com/hnrainll/archive/2011/07/23/2114854.html 1.简介 在Linux中,并不存在exec()函数,exec指的是一组函数,一共有6个,分别是: #include <unistd.h> extern char **environ; int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char

linux 进程查看命令汇集

首先,向大家介绍一些linux查看进程的命令,pstree.ps.top.htop等,接下来为大家演示这几个常用命令. 1,  Linux ps命令: (1)linux 进程查看命令ps,常用命令为#ps aux 如图所示: 其中红色圈出部分: PID:进程号  %CPU:进程占用cpu比例  %MEM:进程占用内存比例  VSZ:虚拟内存占用比例  RSS:常驻内存级 (2)ps常用命令组合#ps –ef  如图所示: 其中,-e:显示所有进程  -f:显示完整格式 2,  linux top