进程的查看
静态查看进程
1、ps:是监视系统进程的主要工具,显示的是瞬时的进程状况
ps -elf 可以显示 uid ppid
ps aux BSD
-e:显示所有进程
-f:全格式显示
a:显示所有进程(包含其他用户的进程)
u:显示进程的拥有者
x:和a一起使用,显示所有进程(包含无控制终端的进程) TTY为?的进程
-l:显示更多的信息 (PRI 优先级)
-o:自定义显示结果(默认情况只显示前台进程)
eg: ps -axo uid,pid,ppid
/proc
image.png
进程的拥有者 进程号 父进程号 cpu使用的资源百分比 开始时间 运行进程的终端名字 进程运行的时间 命令
pts:伪终端、虚拟终端
tty1--tty6: 字符终端
image.png
拥有者 进程号 占用cpu百分比 占用内存百分比 占用的虚拟内存的大小VSZ 驻留内存大小RSS 终端 进程状态STAT 开始时间 START 运行时间(占用cpu的时间) 命令
STAT:进程状态
R:该进程正在运行或就绪
S:休眠进程
Z:僵尸进程,实际上该进程已经终止,但是它的父进程却无法正常终止它,造成僵尸进程的状态
T:该进程正在跟踪或者已经停止
2、pstree:以树形显示正在运行的进程
image.pngsystemd是所有进程的父进程
el6为init
top:实时查看系统运行状态
image.png统计信息区(共五行):
第一行: 当前系统时间 系统运行时间 , 当前登录用户数, 系统平均负载: 1分钟,5分钟,15分钟
第二行: 任务(进程): 总数, 正在运行的, 休眠的, 停止的, 僵尸
第三行: cpu状态(%): 用户空间us, 内核空间sy, 改变过优先级的ni, 空闲的id, IO等待的wa, 硬中断hi, 软中断si, 虚拟机st
第四行: 内存状态(K): 总量, 空闲的, 使用中的, 缓存的
第五行: swap状态(K): 总量, 空闲的, 使用中的, 缓冲的
进程信息区:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
Ss s进程的领导者,父进程
S< <优先级较高的进程
SN N优先级较低的进程
R+ +表示是前台的进程组
Sl 以线程的方式运行
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志
top操作:
1 -- 展开cpu信息
f -- 更改显示内容
M -- 根据驻留内存大小进行排序
P -- 根据CPU使用百分比大小进行排序
q -- 退出
Fields 字段/列
进程的前后台调度
1、前台运行:
# firefox 192.168.1.250
会发现该程序一直占用终端,其他命令不能够再在这个终端运行
2、后台运行
1)命令执行的时候,直接将其放置于后台运行
# firefox 192.168.1.250 &
[1] 6222
后台运行不会占用执行命令的终端,用户仍然可以使用这个终端做操作
2)对于一个已经运行的命令,如何将其放置于后台 ctrl+z
# firefox 192.168.1.250
[1] Done firefox 192.168.1.250
[2]+ Stopped firefox 192.168.1.250
ctrl+z将前台进程放置于后台,但是该进程在后台是停止的状态
# jobs //查看后台进程运行状态
[2]+ Stopped firefox 192.168.1.250
# bg 2 //激活后台进程
[2]+ firefox 192.168.1.250 &
# jobs
[2]+ Running firefox 192.168.1.250 &
bg 任务编号 : 指定任务在后台运行
fg 任务编号 : 将后台运行的命令变成前台运行
# fg 2
firefox 192.168.1.250
注意:不管你是前台运行,还是后台运行,只要终端一关闭,进程就停止了。
那么如何让一个命令或者程序脱离终端?
使用nohup命令。
# nohup firefox 192.168.1.250 &
[1] 6537
# nohup: ignoring input and appending output to `nohup.out' //按回车
进程的终止
如何终止一个进程呢?
1. 前台正在执行的命令: ctrl+c
2. kill,killall等命令
kill通过传递信号给进程来执行相应的操作.
查看信号的列表
# kill -l
常用的信号:
1) SIGHUP:重置进程的配置,即不停止服务的情况下,重新读取配置文件 重载
kill -1 PID 或者kill -HUP PID
2) SIGINT:中断(interrupt),ctrl+c
9) SIGKILL:强制杀死进程
15) SIGTERM:正常终止进程,此信号为kill默认
18) SIGCONT: 继续,和20相反,bg
20) SIGTSTP:暂停,ctrl+z
pkill:按照进程的属性结束进程
按照进程名字杀死进程
# pkill firefox
按照用户名杀死进程
# su - test
[test@clone1 ~]$ vim /etc/passwd
# pkill -U test
killall:
killall 命令名字 //杀死全部的同名进程
xkill:杀死图形化资源
当执行了xkill之后,鼠标会变成“x”形,点到任何图形资源,就会终止该资源的运行
进程的nice值
谦让值:nice
作用:指定或者调整用户进程的nice值
nice值越高,该进程抢占资源的能力越弱
nice值越低,该进程抢占资源的能力越强
范围:-20~19
相关命令
nice -- 运行时直接设置nice值
用法: nice -n 数字 command
renice -- 对于已经运行的,调整nice值
用法: renice 数字 PID