ps
ps: 显示进程状态的命令,快照式、一次性
支持两种风格:SysV, BSD
VSZ: Virtual memory SiZe 总线性内存
RSS: 常驻内存集
STAT状态:
R: running
S: 可中断睡眠
D:不可中断睡眠
T:stopped
Z:zombie
s: session leader
+:前台进程
l: 多线程进程
N:低优先级进程
<: 高优先级进程
常用组合:ps aux:
与用户为中心组织进程状态信息显示:u
与终端相关的进程:a
与终端无关的进程:x
常用组合:ps -ef
-e: 显示所有进程
-f: 显示完整格式的信息
常用组合:ps -eFH
-F: 显示额外信息
-H:以层级格式显示进程的层次结构
自定义要显示的信息:-o
ps axo pid,command,psr,pri,ni
ni: nice值
pri: priority优优级
psr: processor运行的CPU
rtptrio:实时优先级
pgrep
-U UID:仅显示由指定用户启动的进程-G GID:仅显示与指定组相关的进程
-t term...: 仅显示与指定终端相关的进程
-l: 同时显示进程号和程序名
-a:显示完整格式的进程名
-p:pid 显示其父进程为此处指定的进程的进程列表
TOP
M: 按内存百分比排序
P: 按CPU百分比排序
T: 按累积占用的CPU时间排序
首部显示信息
l: 显示或不显示负载信息
过去1分钟、5分钟、15分钟的平均负载
等待运行的进程队列的长度
t: 显示或不显示进程及CPU相关的信息
1: 数字,分别显示各CPU的相关信息
us: user space
sy: system
ni:
id:
wa: wait io
hi: hardware interrupt
si: soft interrupt
st:
m: 显示或不显示物理内存和交换内存的相关信息
b:以批次方式显示
s: 修改刷新时间间隔
k: 终止指定进程
选项
-d:指定刷新时间-b:以批次方式显示
-n #:显示多少批次
HTOP
u: 交互式选择显示指定用户的进程
l: 显示光标所在进程所打开的文件列表
s: 跟踪光标所在进程执行的系统调用
a: 绑定进程到指定的CPU
#:快速定位光标至PID为#的进程上
vmstat
procs:
r:等待运行的进程的个数
b:处于不可中断睡眠状态的进程个数(被阻塞的队列的长度)
memory:
swpd:交换内存的使用总量
free:空闲物理内存总量
buffer:用于buffer的内存总量
cache:用于cache的内存总量
swap: 站在虚拟内存角度
si:数据进入swap中的数据速率(kb/s)
so:数据离开swap中的数据速率(kb/s)
io 站在系统角度
bi:从块设备读入数据到系统的速率(kb/s)
bo:保存数据到块设备速率(kb/s)
system:
in:interrupts,中断速率
cs:context switch,进程切换速率
cpu:
us:用户空间比例
sy:内核空间比例
id:空闲比例
wa:等待io完成所消耗的时间比例
st:被偷走的时间比例
pmap
pmap PID
-x"显示详细格式的信息
另一种查看内存映射地址信息:cat /proc/$PID/maps
glances
dstat
kill
想进程发送控制信号:
kill -#
常用信号:
1)SIGHUP:无须关闭进程而让其重读配置文件
2)SIGINT:终止正在运行的进程,Ctrl+c
9)SIGKILL:杀死正在运行的进程
15)SIGTERM:终止正在运行的进程
18)SNGCONT:让进程从停止状态继续运行
19)SIGSTOP:让进程处于停止状态
终止“名称”下的所有进程
killall [-SIGNAL] COMMAND
Linux作业控制:
job前台作业:通过终端启动,并在终止之前一直占据着终端
后台作业:作业启动之后即运行于后台,释放前台
交互式模式:手动启动的非守护进程类的程序,一般都运行于前台;
如何将作业运行于后台:
1、运行中的作业:Ctrl+z:送往后台后,作业处于STOPPED状态
2、尚未启动作业:COMMAND &【此类由手动方式控制的作业,与终端相关作业会被终止】
#nohup COMMAND &【把作业送往后台,且与终端无关】
查看作业:# jobs作业控制命令:
# fg [[%]JOBNUM]: 将指定的作业调回前台
# bg [[%]JOBNUM]: 让送往后台的作业在后台继续运行
# kill %JOBNUM: 终止指定的作业
NICE
直接启动一个进程,并指定其Nice值:
nice -n # COMMAND
调整已运行的进程的nice值:
renice -n # -p PID