linux进程查看及管理的工具:
pstree,ps,pidof,pgrep,top,htop,glance,pmap,vstat,dstat,kill,pkill,job,bg,fg,nohup
pstree:显示进程树
pstree- display a tree of processes
ps:processstate
ps - report a snapshot of the current processes.
linux系统葛金城的相关信息均保存在/proc/pid目录下的各文件中
ps [option]…
选项:支持两种风格
常用选项组合:aux
u:以用户为中心组织进程状态信息显示
a:与终端相关的进程
x:与终端无关的进程
USER PID %CPU %MEM VSZRSS TTY STAT START TIME COMMAND
VSZ:virtualmemory size
rss:residentsize,常驻内存集
T:stopped
z:zombie
+:前台进程
l:多线程进程
N:低优先级进程
<:高优先级进程
s:sessionleader
常用组合:-ef
-e:显示所有进程
-f:显示完整格式程序信息
常用组合:-ejH
-F:显示完整格式的进程信息
以进程层级格式显示进程相关信息
常用组合:-eo,axo
ni:nice值
pri:priority,优先级
psr:processor,cup
rtprio:实时优先级
pgrep,pkill:
pgrep[options] pattern
pkill[options] pattern
-uuid:effective user
-Uuid:real user
-tterminal:与指定终端相关的进程
-l:显示进程名
-a:显示完整格式的进程名
-ppid:显示其父进程为此处指定的进程的进程列表
pidof:
根据进程名获取pid
top:
有许多内置命令
排序:
P:以占据的cpu百分比
M:战绩内存百分比
T:累计占用cou时长
使用top显示信息,然后按下P,M,T排序
首部信息显示:
uptime信息:l命令
tasks及cpu信息:t命令
cpu分别显示:1
memory信息:m命令
退出命令:q
修改刷新时间间隔:s
终止进程:k
选项:
-d #:指定刷新时间间隔为#秒
-b:以批次显示
htop命令:
s:跟踪选定的系统调用
l:显示选定进程打开的文件列表
vmstat命令:
vmstat[options] [delay [count]]
Procs
r: 等待运行的进程的个数
b: 处于不可终端睡眠态的进程个数(被阻塞的队列的长度)
memory:
swpd:交换内存的使用总量
free:空闲物理内存总量
buffer:用户buffer的内存总量
swap:
si:数据进入swap中的数据速率(kb/s)
so:数据离开swap的数据速率(kb/s)
io:
bi:从块设备读入数据到系统的速率(kb/s)
bo:保存数据至块设备的速率(kb/s)
system:
in:interupts,中断数量
cs:contextswitch,进程切换速率
cpu:
us
sy
id
wa
st
选项:
-s:显示内存的统计数据
pmap命令:
pmap- report memory map of a process
pmap[options] pid [...]
-x:显示详细格式的信息
另一种实现:
#cat/proc/PID/map
glances命令:
a
c
m
p
i
d
f
n
s
y
常用选项:
-b:以Byte为单位显示网卡数据速率
-d:关闭磁盘IO模块
-f:/path/to/somefile:设定输入文件位置
-o{html|csv}:输出格式
-m:禁用mount模块
-n:禁用网络模块
-t#:延迟时间间隔
-1:每个cpu的相关数据单独显示
c/s模式下运行glances命令:
服务模式:
glances–s –B ipaddr
ipaddr:指明监听于本机哪个地址
客户端模式:
glances–c ipaddr
ipaddr:要连入的服务器端地址
dstat命令:
dstat[-afv] [options…] [delay [count]]
-c:显示cpu相关信息
-C#,#,…total
-d:显示disk相关信息
-Dtotal,sda,sdb,…
-g:显示page相关统计数据
-m:显示memory相关统计数据
-n:显示network相关统计数据
-p:显示process相关统计数据
-r:显示IO请求相关的数据统计
-s:显示swapped相关的数据统计
--tcp
--udp
--socket
--raw
--unix
--socket
--ipc
--top-cpu:显示最占用cpu的进程
--top-io:显示最占用io的进程
--top-mem:显示最占用内存的进程
--top-mantency:显示延迟最大的进程
kill命令:
向进程发送控制信号,以实现对进程管理
#kill–l
#man7signal
常用信号:
1) sighup:无需关闭进程而让其重读配置文件
2)sigint:终止正在进行的进程,相当于ctrl+c
9) sigkill:杀死正在运行的进程
15)sigterm:终止正在进行的进程
18)sigcont:
19)sigstop:
指定信号的方法:
(1) 信号的数字标识
(2) 信号完整名称:sighup
(3) 信号的简写名称:hup
向进程发送信号:
kill[-signal] PID…
终止“名称”下的所有进程:
killall[-signal] program
killall-15 httpd
linux的作业控制:
jobs
前台作业:通过终端启动,且启动后一致占据终端
后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端)
如何让作业运行于后台:
(1)运行中的作业
ctrl+z
(2)尚未启动的作业
# command &
此类作业虽然被送往后台运行,但其依然与终端相关
如果希望送往后台后,剥离与终端的关系,
# nohug command &
查看所有作业:
#jobs
作业控制:
#fg [[%]job_num]:把指定的后台作业调回前台
#bg [[%]job_num]:让送往后台的作业在后台继续运行
#kill [[%]job_num]:终止指定的作业
进程优先级调整:
静态优先级:100-139
进程默认启动时的nice值为0,优先级为120
nice,renice
nice:
nice[OPTION] [COMMAND [ARG]...]
renice:
renice[-n] priority pid…
未涉及到的命令:sar,tsar,iostat,iftop