这里主要是梳理Linux进程查看及管理的工具,将分两个部分分别介绍进程管理过程中涉及到的相关命令,包括:pstree,ps,pidof,pgrep,top,htop,glance,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup等。
pstress命令:
用来显示进程数
pstree - display a tree of processes
ps:process state
ps - report a snapshot of the current processes
linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中。这里有一个概念,就是伪文件系统 /proc下的数字文件
ps [OPTION]...
选项:支持两种风格
常用组合:aux
u:以用户为中心组织进程状态信息显示
a:与终端相关的进程
x:与终端无关的进程
注意:command表示由哪个命令启动,加中括号表示内核启动的进程
线程是进程的子单位,由进程创建。
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
VSZ virtual memory size 虚拟内存集
RSS resident size,常驻内存集,不能被交换出去的内存空间,线性内存集
TTY 终端
STAT 进程状态
R running
S interruptable sleeping
D uninterruptable sleeping
T stopped
Z zombie
+ 前台进程
l 多线程进程
N 低优先级进程
< 高优先级进程
s session leader
常用组合: -ef
-e:显示所有进程
-f:显示完整格式程序信息
常用组合:-ejH
-F:显示完整格式的进程信息
-H: 以进程层级格式显示进程相关信息
常用组合:-eo,-so
-eo 显示pid,tid,class,rtprio,ni,pri,pcpu,stat,wchan:14,comm
axo 显示stat,euid,ruid,tty,tpgid,pgrp,ppid,pid,pcpu,comm
ni:nice值
pri:priority,优先级
psr:processor,CPU
rtprio:实时优先级
pgrep(及pkill):直接完成进程显示的过滤
pgrep [options] pattern
pkill [options] pattern
-u uid: effective user
-U uid: real user
-t terminal: 与指定终端相关的进程
-l:显示进程名
-a:显示完整格式的进程名
-P pid:显示其父进程为此处指定的进程的进程列表
pidof:
根据进程名获取其PID
top:
有许多内置命令
排序:
P:以占据的CPU百分比
M:占据内存百分比
T:累计占据CPU时长
首部信息显示:
uptime信息:l命令
tasks及cpu信息:t命令
cpu分别显示:l(数字)
cpu相关信息
us 用户占据时间
sy 应用空间
ni nice值
wa wait io时间
hi 处理硬件中断
si 处理切换的时间
st 偷走的时间
memory信息:m命令
退出命令:q
修改刷新时间间隔:s
终止指定进程:k
选项;
-d #:指定刷新时间间隔,默认为3秒
-b:以批次方式显示
-n #:显示多少批次
htop命令(相对于传统的top命令,在性能上有较大的提升,系统不自带,需要单独安装):
s:跟踪选定进程的系统调用
l:显示选定进程打开的文件列表
a:将选定的进程绑定至某指定CPU核心