进程管理常用命令
PS命令
ps [OPTIONS]
选项有三种风格
1 UNIX : 选项必须加-
2 BSD : 选项不能加-
3 GNU : 选项要加两个-
启动进程的方式
系统启动过程中自动启动,与终端无关
用户通过终端启动,与终端相关的进程
BSD风格选项
a 所有于终端相关的进程
x 所有于终端无关的进程
u 以用户为中心组织进程状态信息显示
常用选项之一 aux
USER 运行进程的user
PID 进程号
%CPU 占用cpu百分比
%MEM 占用内存百分比
VSZ 虚拟内存集
RSS 常驻内存集
TTY 运行进程的终端
START 进程开始时间
TIME 累计运行cpu时间
COMMAND 运行进程的命令
STAT 状态
R 运行态
T 停止态
Z 僵尸态
+ 前台进程
l 多线程进程
N 低优先级进程
< 高优先级进程
s 进程领导者
S 可中断的睡眠
D 不可中断的睡眠
UNIX风格选项
-e 显示所有进程
-f 显示完整格式的进程信息
-F 更加完整
-H 以层级结构显示
常用选项之二 ps -ef
UID 运行进程的user
PID 进程号
PPID 进程的父进程号
C 占用cpu百分比
STIME 开始时间
TTY 运行于那个终端
TIME 累计运行cpu时间
CMD 启动此进程的命令
常用选项之三 ps -eFH
UID 运行进程的user
PID 进程号
PPID 进程的父进程号
C 占用cpu百分比
SZ 使用的内存大小
RSS 常驻内存集
PSR 运行于哪个cpu
STIME 开始时间
TTY 运行于那个终端
TIME 累计运行cpu时间
CMD 运行进程的命令
HTOP命令
默认会显示以下内容
上左区
CPU 目前CPU的使用率 (多个CPU时显示数字,1 2 3 4 ...)
MEM 目前内存的使用率
SWP 目前swap的使用率
上右区
tasks 所有的进程数
thr 用户线程数 H隐藏/显示
kthr 内核线程数 K隐藏/显示
runing 运行中的进程数
load average 显示1分钟 5分钟 和15分钟的平均负荷
uptime 开机到现在的运行时间
下方进程区
PID:进行的标识号
USER:运行此进程的用户
PRI:进程的优先级
NI:进程的优先级别值,默认的为0,可以进行调整
VIRT:进程占用的虚拟内存值
RES:进程占用的物理内存值
SHR:进程占用的共享内存值
S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态
%CPU:该进程占用的CPU使用率
%MEM:该进程占用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间
COMMAND:进程启动的启动命令名称
底部功能区
F1 帮助
F2 显示设置
F3 进程搜索
F4 进程过滤器
F5 显示进程树
F6 排序, 如果是进程树模式将会展开或收缩父进程
F7 减小nice值
F8 增加nice值 直接修改光标选取的进程的nice值
F9 杀掉指定进程
F10 退出htop
功能键
空格键 用于标记选中的进程,用于实现对多个进程同时操作
U 取消所有选中的进程
s 显示光标所在进程执行的系统调用
l 显示光标所在进程的文件列表
I 对排序的结果进行反转显示
a 绑定进程到指定的CPU
u 显示指定用户的进程
M 按照内存使用百分比排序,对应MEM%列
P 按照CPU使用百分比排序,对应CPU%列
T 按照进程运行的时间排序,对应TIME+列
K 隐藏内核线程
H 隐藏用户线程
# 快速定位光标到PID所指定的进程上
htop相关选项
-d 设置刷新时间,单位为秒;
-C 设置界面为无颜色
-u 显示指定用户的进程
vmstat命令
vmstat [options] [delay [count]]
procs 进程
r 等待执行的任务数
b 等待IO的进程数量
memory 内存
swpd 交换内存使用总量
free 空闲的物理内存总量
buff 已用的buff大小,对块设备的读写进行缓冲
cache 已用的cache大小,文件系统的cache
swap
si 每秒从交换区写到内存的大小
so 每秒写入交换区的内存大小
io
bi 每秒读取的块数
bo 每秒写入的块数
system
in 中断速率 每秒中断数,包括时钟中断
cs 每秒上下文切换数
cpu
us 用户进程执行消耗cpu时间
sy 系统进程消耗cpu时间
id 空闲时间
wa 等待io时间
st 被虚拟化技术偷走的百分比 (这是一般不用关注)
us + sy + id + wa =100%
vmstat -s 显示内存统计数据
pmap命令
pmap命令 查看进程的内存映像信息
pmap [options] PID
常用选项
-x 详细输出
另一种查看方式
cat /proc/{PID}/maps
dstat命令
dstat命令 生成系统资源统计信息的通用工具
dstat [-afv] [options..] [delay [count]]
dstat -t --top-cpu-adv 1 0
常用选项
-t 显示时间
-c 显示cpu相关信息
-d 显示硬盘相关信息
-g 显示page的速率
-m 显示内存相关信息
-n 显示网络相关信息
-p 显示process相关信息
-r 显示io请求的相关信息
-s 显示swap的相关信息
--tcp 查看网络连接数据
--udp
--raw
--socket 展示套接字状态,包括tot总数量,tcp套接字数量,udp套接字数量,
raw原始套接字数量,frg(ip-fragments IP碎片)套接字数量
查看top进程
--top-cpu 最占用cpu的进程
--top-io 最占用io的进程
--top-mem 最占用内存的进程
--top-latency 延时最大的进程
kill和killall命令
kill命令 用于向进程发送信号
kill [-s signal | signal ] pid... 发送信号
kill -l [signal] 查看信号
每个信号有三种标识方法
1 信号的数字标识
2 信号的完整名称
3 信号的简写名称
常用信号
1) SIGHUP:无需关闭进程而让其重读配置文件
2) SIGINT:终止正在运行的进程 相当于ctrl+c
3)SIGQUIT:退出 同ctlr+\
9) SIGKILL:杀死运行中的进程 直接处死
15)SIGTERM:默认信号 终止运行中的进程
18)SIGCONT:继续执行 运行停止中的进程 fg将后台中的命令调至前台继续运行/bg将一个在后台暂停的命令,变成继续执行
19)SIGSTOP:停止执行 同ctlr+z
killall 可以根据名字来杀死进程,它会给指定名字的所有进程发送信息
linux作业控制
前台作业 通过终端启动,启动后会一直占据终端
后台作业 可以通过终端启动,启动后转入后台执行(释放终端)
如何让作业运行于后台
1:ctlr+z
注意:送往后台后,作业变为会停止态
2:command &
此类作业虽然被送往后台,但依然与终端相关一旦关闭终端作业也会停止
除非使用nohup
查看所有作业
jobs -l
可实现作业控制的常用命令
fg [[%]JOB_NUM] 将作业调回到前台运行
bg [[%]JOB_NUM] 让送往后台的作业在后台运行
kill %JOB_NUM 给作业发送信号