linux进程管理
pstree
进程树查看
ps
用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序
Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中
aux- u:以用户为中心组织进程状态信息显示
- a:与终端无关
- x:与终端无关
| 字段 | 说明 |
-
| : - : | - :
USER | 进程的属组 |
PIP | 进程大数字ID号 |
%CPU | 运行占据的cpu百分比 |
%MEM | 运行占据的memory百分比 |
VSZ | 虚拟内存大小(进程的在线性地址空间中真正占有的内存大小)|
RSS | 常驻内存集(不能被放在交换分区,进程运行时,加载到内存的指令和数据)|
TTY | 通过哪个终端启动,?表示与终端无关
STAT | 进程状态(R:running、S:interruptable sleeping、D:uninterruptable sleeping、T:stopped 、Z:zombie、+:前台进程、l:多线程进程、N:低优先级进程、<:高优先级进程、s:session leader,一般指bash之类的,,会启动多个子进程、)|
START | 启动时间 |
TIME | 运行占据cpu的累计时长 |
COMMAND | 由某命令启动的相关进程 | -
-ef:示完整格式的-e:显示所有进程,相当于ax-f:显示完整格式的
-
-ejH:显示进程的子进程-j:显示完整格式的进程信息-H:以进程层级格式显示进程相关信息
-
eFH:以进程层级格式显示进程相关信息-F:比f更完整的格式
-
-eo或者-axo-
o:指明要显示的值,
-
stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ni: nice值 、pri: priority,优先级 、psr: processor, CPU 、rtprio: 实时优先级
pgrep、pkill
look up or signal processes based on name and other attributes
语法
-
pgrep [options] pattern -
pkill [options] pattern -
-u uid: effective user -
-U uid: real user -
-t terminal: 与指定终端相关的进程 -
-l: 显示进程名 -
-a: 显示完整格式的进程名 -
-P pid: 显示其父进程为此处指定的进程的进程列表
**只列出进程名为sshd且由root用户拥有的进程
**列出由root用户或daemon用户拥有的进程。
pidof
获取进程的PID号
top
top命令默认以cpu的信息进行排序,我们可以自定义排序
-
M:占据内存百分比
-
T:累积占据CPU时长
-
q:退出命令
-
s:修改刷新时间间隔
-
k:终止指定进程
-
按
l隐藏第一行 -
按
1cpu分别显示 -
按
t隐藏或显示所有的信息 -
按
s修改刷新时间 -
按
k终止指定进程
[root@node1 ~]# top -d 1 # 指定刷新时间1s
[root@node1 ~]# top -b -n 2 #以批次方式显示,显示2批
htop
交互式的进程查看
vmstat
| 字段 | 说明 |
- | : - : | - : |
procs | r:等待运行的进程的个数、b:处于不可中断睡眠态的进程个数 (被堵塞的队列长度)|
memory | swapd:虚拟/交换内存使用总量、free:空闲物理内存总量、buffer:用于buffer的内存总量、cache:用于cache的内存总量 |
swap | si:从物理内存到交换内存的速率kb/s、so:数据离开swap的数据速率 |
io | bi:从块设备读入数据到内存中的速率kb/s、bo:保存数据到块设备的速率 |
system | in:中断速率、cs:上下文切换速率 |
cpu | us:用户空间占局的比率、sy、id 、wa 、st |
[root@node1 ~]# vmstat 2 # 2s刷新一次
[root@node1 ~]# vmstat 2 5
[root@node1 ~]# vmstat -s #显示内存的统计数据
pmap
报告一个进程内存映射表的情况
[root@node1 ~]# pmap 1 # 报告1进程的内存映射表情况
glances
一个跨平台的监控工具
glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]
-b: 以Byte为单位显示网卡数据速率;-d: 关闭磁盘I/O模块;-f /path/to/somefile: 设定输入文件位置;-o {HTML|CSV}:输出格式;-m: 禁用mount模块-n: 禁用网络模块-t#: 延迟时间间隔-1:每个CPU的相关数据单独显示
C/S模式下运行glances命令
使用node1主机通过glances连接node2
- 服务端模式
[root@node2 ~]# glances -s -B 192.168.1.27
Glances server is running on 192.168.1.27:61209
- 客户端模式
[root@node1 ~]# glances -c 192.168.1.27
dstat
dstat是vmstat的替换工具
-c: 显示cpu相关信息;-C #,#,...,total:指明那颗cpu的状态-d: 显示disk相关信息;-D total,sda,sdb,...: 指明哪块磁盘的状态-g:显示page相关统计数据;-m: 显示memory相关统计数据;-n: 显示network相关统计数据;-p: 显示process相关统计数据;-r: 显示io请求相关的统计数据;-s: 显示swapped相关的统计数据;--tcp--udp--unix--raw--socket--ipc--top-cpu:显示最占用CPU的进程;--top-io: 显示最占用io的进程;--top-mem: 显示最占用内存的进程;--top-lantency: 显示延迟最大的进程;
kill
向进程发送控制信号,以实现对进程管理
显示当前系统可用信号
# kill -l
# man 7 signal
常用信号:
-
- SIGHUP: 无须关闭进程而让其重读配置文件;
-
- SIGINT: 中止正在运行的进程;相当于Ctrl+c;
-
- SIGKILL: 杀死正在运行的进程;
-
- SIGTERM:终止正在运行的进程;
-
- SIGCONT:
-
- SIGSTOP:
作业控制
前台作业:通过终端启动,且启动后一直占据终端;
后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端)
- 让作业运行于后台
运行中的:Ctrl + z
尚未启动的:# COMMAND &
此类作业虽然被送往后台运行,但其依然与终端相关,即送往后台会停止。
如果希望送往后台后,剥离与终端的关系:nohup COMMAND &
- jobs:查看当前所有的作业
- fg:把指定的后台作业调回前台
- bg:让送往后台的作业在后台继续运行
- kill:终止指定的作业
# fg [[%]JOB_NUM]:把指定的后台作业调回前台
# bg [[%]JOB_NUM]:让送往后台的作业在后台继续运行
# kill [%JOB_NUM]:终止指定的作业

浙公网安备 33010602011771号