UNIX中每个进程都有唯一的数字ID,不同的实例可以同时进行,但是ID不一样,一个进程中包含多种属性

我们学习和进程相关的命令,主要是top,ps pgrep

那么,关于进程的信息,就是如下

ps是收集进程信息的重要工具,其包含

进程拥有者 起始时间 命令行路径 进程ID 进程所属的终端

ps直接使用的显示

ps

PID TTY          TIME CMD

5412 pts/3    00:00:00 bash

24580 pts/3    00:00:00 ps

ps命令会结合一系列的参数使用,不使用任何参数,ps会显示运行在当前终端TTY的进城

分别显示PID TTY CMD

如果需要显示更多的信息的更多的列,可以使用-f,例如

ps -f

还会在之中显示UID

如果需要显示在系统中的每一个进城,需要使用选项-e every 或者 -ax all 来生成相同输出

ax的含义还是解除默认的TTY限制

ps -ef显示更多的信息

ps还能显示更多的信息,一般使用-o获取到想要显示的列

-o往往需要配合一个参数列表来使用

-o一般是和-e结合使用的,如果需要过滤某些线程,就不要使用-e,因为这会使得过滤器失效

comm表示COMMAND pcpu表示CPU占用率

参数列表如下

图片 图片

接下来是一些其他的查看进程命令

top

对于管理员来说即为主要的命令,top会显示若干个CPU占用最多的进城

ps进行输出排序

利用–sort 可以配合PS进行特定的排序

ps [OPTIONS] –sort –

需要列出占用CPU最多的10个进程,可以使用

ps -eo pid,comm,pcpu,user,time –sort -pcpu | head

我们可以配合着找到一些其他的目录,比如配合grep命令

ps -eo pid,comm,pcpu,user,time –sort -pcpu | grep java

我们可以识别一个命令的多个进程ID

ps -C COMMAND_NAME

我们可以使用ps来获取到命令对应的进程ID

ps -C COMMAND_NAME -o pid=

后面 pid移除了头部的PID

或者使用工具

pgrep COMMAND

pgrep bash

1255

1680

pgrep只需要命令的一部分就可以了进行模糊搜索了

ps则需要完全的名称

pgrep COMMAND -d “换行符”

pgrep bash -d

指定查看某个用户的列表

pgrep -u root,slynux COMMAND

其中root和slynux都是用户名

返回匹配的进城数量

pgrep -c COMMAND

根据真实用户或者ID以及有效用户或者ID进行过滤PS输出

可以用ps来对ID进行分组,过滤PS的输出

使用 -u 来指定有效用户列表

使用 -U来指定真实用户列表

ps -u root -U root -o user,pcpu

使用TTY来过滤ps输出

指定进程所属的TTY选择ps的输出,-t来指定TTY列表

ps -t TTY1,TTY2..

ps -t pts/0

进程线程相关的信息

与线程进程相关的信息在ps的输出中是看不到的,我们可以使用-L在ps输出中显示线程相关的信息,输出NLWP和NLP

分别是线程数量,和线程ID

首先是ps -eLf

这样会列出对应的线程数和线程ID

支持输出宽度和显示的列

我们可以再输出的时候,对格式进行标准化

-f ps -ef

u ps -e u

ps ps -e w

显示一个进程所需要的环境变量

我们需要显示这个命令所需要的环境变量

可以使用

ps -eo cmd e

使用cmd来展示环境变量

ps -eo pid,cmd e | tail -n 20

COMMAND           PID CMD

systemd             1 /usr/lib/systemd/systemd –switched-root –system –deserialize 22

kthreadd            2 [kthreadd]

ksoftirqd/0         3 [ksoftirqd/0]

kworker/0:0H        5 [kworker/0:0H]

migration/0         7 [migration/0]

rcu_bh              8 [rcu_bh]

rcu_sched           9 [rcu_sched]

lru-add-drain      10 [lru-add-drain]

watchdog/0         11 [watchdog/0]

kdevtmpfs          13 [kdevtmpfs]

netns              14 [netns]

khungtaskd         15 [khungtaskd]

writeback          16 [writeback]

kintegrityd        17 [kintegrityd]

bioset             18 [bioset]

bioset             19 [bioset]

bioset             20 [bioset]

kblockd            21 [kblockd]

md                 22 [md]

这种方式可以最终设置的环境变量的参数错误,我们如果设置错误了环境变量

比如使用crontab的调度工具设置,会依赖某些环境变量,如果没有设置好环境变量,可能导致到了时间,仍然没有按时启动,因为需要启动Windowapp,而windowapp的环境变量没有配好

于是我们需要知道环境变量,就需要ps -C windowapp -eo cmd e

然后重新修改就可以了

发表评论

邮箱地址不会被公开。 必填项已用*标注