进程静态查看工具
静态进程查看工具是捕获进程某一时刻的状态,其本质是读取 /proc 目录下各进程的映射文件中的内容。
pstree命令
以层级结构显示各进程之间的父子关系。
# pstree
ps命令常用组合:
组合:aux
用法: ps aux
选项说明:
a:与终端相关的进程,即从终端启动的进程
u:以用户为中心显示进程状态,显示进程属主、cpu、内存占用等更多详细信息
x:与终端无关的进程,开机自启的系统服务、内核相关的进程等
字段及解释:
USER:进程属主
PID:进程ID
%CPU:cpu占用百分比
%MEM:内存占用百分比
VSZ:虚拟内存集,进程实际占用的内存空间
RSS:常驻内存集,不能被放入交换分区中,进程必须的一段线性地址
TTY:终端类型。与终端相关,则显示终端代号,如tty1;若为与终端无关进程,则显示为?
STAT:进程状态
R:正在运行
S:可中断的睡眠状态
D:不可中断的是u面状态
T:已停止
Z:僵死状态,并非真正停止,等待父进程收集该进程信息的一种状态
+:前台进程
l:多线程进程
N:低优先级
<:高优先级
s:表示该进程为对应会话的leader
START:进程启动时间
TIME:进程占用cpu的累计时间
COMMAND:由哪个命令启动,记录于/proc/进程号/cmdline这个文件中
组合:-ef
用法:ps -ef
选项说明:
-e:显示所有进程
-f:在-e基础上显示更丰富的信息
字段及解释:
UID:进程属主用户名
PID
PPID:父进程PID
C:cpu占用
STIME:进程开始时间
TTY
TIME
CMD
组合:-ejH
用法:ps -eFH
选项说明:
-F:完整格式信息
-H:以层级结构(类似于pstree)显示进程关系
字段及解释:
UID
PID
PPID
PGID:进程组ID
SID:会话ID
C:
SZ:进程的核心映像大小
RSS
PSR:cpu编号
STIME
TTY
TIME
CMD
其他组合:
# ps eo pid,tid,class... #指定某些显示信息
# ps -axo stat,euid,ruid... #同上,只是两种风格的定义不同
# ps -U USER_NAME #查看指定用户的进程
# pidof P_NAME #根据进程名获取其pid
进程动态查看管理工具
动态形式显示进程相关信息,并提供管理功能。
top命令
top是一个交互式的工具,它提供一些选项与内建命令。
用法:top [OPTIONS]
选项说明:
-b:以批次形式显示信息,配合-n选项使用,显示玩后自动退出
-n:指定显示多少批次
-d #:指定刷新时间间隔,默认3s
交互界面头部信息介绍:
load average # # #:三个数值分表表示过去1、5、15分钟cpu占用比
内建命令:
t:切换cpu占用显示格式
1:分别显示各cpu的状态信息
l:顶行信息显示开关
s:修改刷新时间
k:终止某进程
P:以占用cpu为依据排序显示
M:以占用内存为依据排序显示
T:以占用cpu累计时长为排序依据显示
q:退出
htop命令
htop与top类似,相比top界面更加直观、信息更加丰富。
用法: htop [OPTIONS]
选项说明:
-d #:指定刷新时间
-u USER_NAME:仅显示指定用户进程
-c SOLOMN:以指定字段进行排序
内建命令:
l:显示选定进程打开的文件列表
a:将选定进程绑定至cpu某个核心,仅在该绑定核心运行
t:显示进程树
注:
使用Fedora EPEL源安装此工具
更多命令使用F1查看帮助
glances命令
glances不仅是一个进程查看管理工具,也可以基于C/S为客户端提供服务。
# glances -s -B IPADDR #服务单开启glances服务
# glances -c IPADDR #客户端链接至服务端glances服务,此处的IPADDR为服务端监听的IP
选项说明:
-b: 以Byte为单位显示网卡数据速率
-d: 关闭磁盘IO模块
-f /PATH:将结构保存至文件
-o {HTML|CSV}:输出格式
-m: 禁用mount模块
-n: 禁用网络模块
-t #: 指定延迟时间间隔
-1:每个CPU的相关数据单独显示
内建命令:
c:以cpu占用为排序依据
m:以内存占用为排序依据
p:以进程名作为排序依据
i:以io占用为排序依据
1:分别显示各cpu状态
q:退出
h:开启/关闭帮助页面
dstat命令
dstat是一个查看cpu、内存、磁盘等信息的工具,类似的有vmstat。
用法:dstat [OPTIONS] [DELAY [COUNT]]
选项说明:
-c:cpu占用信息,使用该选项则仅显示该项信息,下列选项也是如此
-m:内存使用信息
-d:磁盘读写信息
-n:网络收发数据量
-p:进程相关
-r:显示即时io
-s:交换分区使用情况
--tcp:tcp链接信息
--udp:udp链接信息
--raw:裸套接字链接信息
--socket:显示tcp,udp,raw统计数据
--top-cpu:cpu占用最大的进程
--top-mem:内存占用最大的进程
--top-io:io使用最大的进程
DELAY COUNT:
为两个数字,前者指刷新时间,后者指刷新数量,如:
dstat 1 3 #每1秒刷新一次,刷新3次(共4行信息)后退出
进程管理
对进程执行某些管理操作,其实质是对内核发送某些特定的信号以及进程号,然后内核根据信号对该进程进行与之对应的操作。
# kill -l #列出可用信号
# man 7 signal #同上
常用信号:
1)SIGHUP:重读配置文件
2)SIGINT:中断某进程,等同于Ctrl C
9)SIGKILL:杀死某进程
15)SIGTERM:终止某进程,与9号信号不同的是该信号操作更加“安全”
18)SIGCONT:启用被停止的进程
19)SIGSTOP:停止进程在某一状态
向内核发送信号:
# kill -1 PID
# kill -SIGHUP PID
# kill -HUP PID
# killall SIGNAL PROGRAM #杀死所有某进程发起的所有进程,如 killall -2 httpd