Linux系统--Linux进程与作业管理(2)

Linux进程相关的基本概念已经了解,Linux进程管理的一些命令:

pstree,pspidofpgreptophtopglancepmapvmstatdstatkillpkiljobbgfgnohup

1.pstree命令:

pstree - display a tree of processes:以树状形式显示当前系统进程,和命令tree相似。

2.ps命令: ps - report a snapshot of the current processes

命令格式:ps [options]

常用组合:aux

u:以用户为中心组织的进程状态信息显示

a:与终端相关的进程

x:与终端无关的进程

    Linux系统--Linux进程与作业管理(2)_top

其中PID:进程ID

%CPU:占用的CPU使用率

%MEM:内存的使用率

VSZ:占用虚拟内存的大小

RSS:占用内存的大小

STAT:进程状态:

R:running,正在运行的

S:处于休眠状态的,可中断的休眠状态

D:无法中断的休眠状态

T:Stop

Z:僵死进程

P:等待页面交换

N:低优先级进程

<:高优先级进程

+:位于后台的进程组

l:多线程进程

s:进程的领导者

常用组合:-ef

-e:显示所有进程

-f:显示完整格式的程序信息

常用组合:-eFH

-F:显示完整格式的进程信息

-H:以进程层级格式显示进程相关信息

常用组合:-eo-axo:

-eo  pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm

       axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

        Linux系统--Linux进程与作业管理(2)_pstree_02

3.pidof命令:

pidof -- find the process ID of a running program

[root@server ~]# pidof pidof

3752

4.pgrep命令和pkill

 pgrep, pkill - look up or signal processes based on name and other attributes

pgrep来获得正在被调度的进程的相关信息。pgrep通过匹配其程序名,找到匹配的进程

pgrep命令相当于ps -eo pid,comm | grep PRO_NAME

eg:

# ps -eo pid,comm | grep init

1 init

# pgrep init -l

1 init

pgrep 常用选项:

-u uid:显示与有效用户相关的进程信息

-U uid:显示与真实用户相关的进程信息

-t terminal:与指定终端相关的进程

-l:显示进程名和id

-a:显示完整格式的进程名

-P pid:显示其父进程为此处指定的进程的进程列表

-o:匹配多个进程时,显示进程id最小的那个

-n:匹配多个进程时,显示进程id最大的那个

            Linux系统--Linux进程与作业管理(2)_pstree_03

pkill:kill掉运行中的进程。

#pkill 正在运行的进程名

常用选项:

-t terminal:杀死与终端terminal相关的进程

        -U Username:杀死与用户相关的进程:

5.top命令:

    Top命令用来监控Linux的系统状况。比如CPU,内存的使用等。

    Linux系统--Linux进程与作业管理(2)_ps_04

top基本视图解析:

第一行分别表示:当前系统时间,系统运行了多长时间,当前有几个用户登录系统,load average后面三个数分别是1分钟,5分钟,15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。

第二行:Tasks: 106 total当前系统进程的总数,1个处于运行中,105处理睡眠状态,0个处于stoped 0个处于僵死状态。

第三行:CPUs: 

us:用户空间占用cpu的百分比。

sy:内核空间占用CPU的百分比

ni:改变过优先级的进程占用CPU的百分比

id:空闲CPU百分比

wa:IO等待占用CPU的百分比

hi:硬中断占用CPU的百分比

si:软中断占用的CPU的百分比

第四行:Mem

total:物理内存总量

used:使用的内存总量

free:空闲的内存总量

buffers:缓存的内存总量

第五行:Swap

total:交换分区总量

used:使用交换区总量

free:空闲交换区总量

cached:缓冲交换区总量

一台计算机的可用内存为:第四行的free+第四行的buffer+第五行的cached

统计区域各列的含义:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

PID:进程id

PPID:父进程id

USER:Real username

PR:优先级

NI:Nice

VIRT:进程使用的虚拟内存总量,单位kbVIRT=SWAP+RES

SWAP:使用的虚拟内存中被换出的大小,单位kb

RES:进程使用的,未被换出的物理内存的大小,单位kb.

RES=CODE+DATA

CODE:可执行代码占用的物理内存大小,单位kb

DATA:可执行代码使用的数据(数据段+栈)占用的物理内存大小,单位kb

SHR:共享内存大小,单位kb

%CPU:上次更新到现在的CPU时间占用百分比

%MEM:进程使用物理内存百分比

TIME+:进程使用的CPU时间总计,单位为1/100

COMMAND:命令名

默认情况下:进入Top之后,各个进程是按CPU的占有量来排序的。

1.进去top之后,按b键,打开或关闭加亮效果。通过按y键关闭或打开运行态的进程。

2.按x键,打开或关闭排序列的加亮效果,再按shift+>shift+< 可以左右移动加亮排序列

3.按f键,top会进入另一个视图,可编辑基本视图显示的字段。如:

        Linux系统--Linux进程与作业管理(2)_htop_05

如果想加载显示的字段,就桥底段前面的字母,如想显示CODE和DATA字段,就按 rs键,然后回车。

4.按数字可以监控每个逻辑CPU的状况。

5.命令luptime信息

6.命令ttasksCPU信息

7.命令mmemory信息

8.命令s:修改刷新时间间隔

9.命令k:终止指定的进程

10.命令q:退出top

6.htop命令:

htop是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序 ,与Linux传统的top命令相比,htop更人性化,他可以让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,支持鼠标操作。

可以从Fedora-EPEL源下载htop命令,也可以源码安装。

htop界面:

    Linux系统--Linux进程与作业管理(2)_pgrep_06

htop常用选项:

-d #:指定延时时间

-u UserName:只显示指定用户的进程

-s COLOMN:以指定字段进行排序

htop启动之后的交互式命令:

空格键:标记/取消标记一个进程。使用其他命令可以作用多个进程,例如kill。可以杀死所标记的进程。

U:取消所有标记的进程

s:跟踪选定进程的系统调用

l:显示选定进程打开的文件列表

a:将选定的进程绑定至某指定的CPU核心

t:显示进程树

由于htop命令启动之后的界面上的参数和top命令的相似,在这就不在介绍。

查看一下F1~F10的功能和对应的字母快捷键

F1---h,? ---->查看htop的使用说明

F2---S------->htop设定

F3---/ -------->搜索进程

F4---\ -------->增量进程过滤器

F5---t------->显示树形结构

F6---<,>----->选择排序方式

F7---[-------->可减少nice的值,提高对应进程的优先级

F8---]-------->可增加nice的值,减低对应进程的优先级

F9---k------->kill a process

F10---q---->退出htop