关于进程的管理

1.什么是进程

  • 程序:通常为二进制程序,放置在存储媒介中(如硬盘、光盘、软盘、磁带等),以物理文件的形式存在
  • 进程:程序被触发后,执行者的权限与属性、程序的代码与所需数据等都会被加载到内存中,操作系统给予这个内存中的单元一个标示符,可以说进程就是一个正在运行中的程序
  • 简单来说,进程就是系统未完成并且正在运行的工作,即资源分配的最小单元
  • 线程之间的资源可以进行互相调配,进程不行

2.进程的状态

  • R(Running):该程序正在运行中
  • S(Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒
  • D:不可被唤醒的睡眠状态,通常进程可能在等待I/O的情况
  • T:停止状态(stop),可能在工作控制(背景暂停)或除错(traced)状态
  • Z(Zombie):僵尸状态,程序已经终止但却无法被移除至内存外

3.查看进程

1.图形方式查看

gnome-system-monitor #调用进程信息
end process :结束进程
kill process :强制结束进程
%cpu :数字越大,优先级越低
在这里插入图片描述

2.进程查看命令

ps -a当前环境的所有进程,不包括环境的信息
ps -A系统所有的进程
ps -u显示进程用户信息
ps a显示当前环境中运行的进程,包含环境信息
ps x列出系统中所有运行包含tty输出设备,即所有包含终端的进程
ps e显示进程的环境信息(系统资源的调用)
ps f显示进程存储关系,即父子关系
[kiosk@foundation79 ~]$ ps a
  PID TTY      STAT   TIME COMMAND
 1638 tty1     Ssl+  12:13 /usr/bin/Xorg :0 -background none -noreset -audit 4 -verbose -au
 2460 pts/0    Ss     0:00 bash
 2602 pts/0    Sl     1:24 virt-viewer desktop
 2612 pts/0    S      0:00 dbus-launch --autolaunch=38e91cfd96134677bd95ffea05859349 --bina
12165 pts/0    R+     0:00 ps a
[kiosk@foundation79 ~]$ ps e
  PID TTY      STAT   TIME COMMAND
 2460 pts/0    Ss     0:00 bash SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/1773,unix/unix:/
12169 pts/0    R+     0:00 ps e XDG_VTNR=1 SSH_AGENT_PID=1943 XDG_SESSION_ID=1 HOSTNAME=fou
[kiosk@foundation79 ~]$ ps f
  PID TTY      STAT   TIME COMMAND
 2460 pts/0    Ss     0:00 bash
12174 pts/0    R+     0:00  \_ ps f
[kiosk@foundation79 ~]$ ps -u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
kiosk     2460  0.0  0.0 116420  3092 pts/0    Ss   Oct10   0:00 bash
kiosk    12207  0.0  0.0 151056  1832 pts/0    R+   06:20   0:00 ps -u
  • ps常用组合
ps aux显示系统中所有进程并显示进程用户
ps ef显示进程详细信息并显示进程父子关系
ps ax显示当前系统中的所有进程
pstree显示当前系统的进程树,其中systemd是初始化进程
[kiosk@foundation79 ~]$ ps ef
  PID TTY      STAT   TIME COMMAND
 2460 pts/0    Ss     0:00 bash SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/1773,unix/unix:/
12228 pts/0    R+     0:00  \_ ps ef XDG_VTNR=1 SSH_AGENT_PID=1943 XDG_SESSION_ID=1 HOSTNAM
  • 显示进程指定信息
ps -o xxx显示进程的指定信息
ps -o comm进程名称
ps -o user进程所有人
ps -o group进程所有组
ps -o %cpu进程cpu使用率
ps -o %mem进程内存使用率
ps -o pid进程pid
ps -o nice进程优先级
[kiosk@foundation79 ~]$ ps
  PID TTY          TIME CMD
12300 pts/0    00:00:00 bash
12346 pts/0    00:00:00 ps
[kiosk@foundation79 ~]$ ps -o comm
COMMAND
bash
ps
[kiosk@foundation79 ~]$ ps -o comm,pid
COMMAND           PID
bash            12300
ps              12360
[kiosk@foundation79 ~]$ ps -o comm,pid,%cpu
COMMAND           PID %CPU
bash            12300  0.0
ps              12365  0.0
[kiosk@foundation79 ~]$ ps -o comm,pid,%cpu,%mem
COMMAND           PID %CPU %MEM
bash            12300  0.0  0.0
ps              12369  0.0  0.0
[kiosk@foundation79 ~]$ ps -o comm,pid,%cpu,%mem,user
COMMAND           PID %CPU %MEM USER
bash            12300  0.0  0.0 kiosk
ps              12383  0.0  0.0 kiosk
[kiosk@foundation79 ~]$ ps -o comm,pid,%cpu,%mem,user,group
COMMAND           PID %CPU %MEM USER     GROUP
bash            12300  0.0  0.0 kiosk    kiosk
ps              12392  0.0  0.0 kiosk    kiosk
[kiosk@foundation79 ~]$ ps -o comm,pid,%cpu,%mem,user,group,nice
COMMAND           PID %CPU %MEM USER     GROUP     NI
bash            12300  0.0  0.0 kiosk    kiosk      0
ps              12396  0.0  0.0 kiosk    kiosk      0
  • 进程排序
    ps ax --sort= +%cpu / -%cpu # - %cpu为降序排列
    ps ax --sort= +%mem / -%mem
[kiosk@foundation79 ~]$ ps --sort=-%cpu
  PID TTY          TIME CMD
12300 pts/0    00:00:00 bash
12453 pts/0    00:00:00 ps
[kiosk@foundation79 ~]$ ps --sort=-%cpu -o %cpu,comm
%CPU COMMAND
 0.0 bash
 0.0 ps
  • stat中显示的信息
S进程状态
l内存中有锁定空间
N优先级低
<优先级高
+前台运行
s顶级进程

3.进程优先级

1.进程的优先级范围:-20~19

2.优先级查看:ps ax -o pid , nice , comm

3.调整进程的优先级

  • 图形调整进程的优先级,直接在进程的图形界面里面调整数字即可。大数字:表示优先级低,小数字(可以是负数):表示优先级高
  • 命令设定进程优先级:renice -n 优先级数字 进程pid,先开启进程后再改变

4.指定某个优先级开启进程

  • nice -n 优先级数字 进程名称
  • nice -n -5 vim &#开启vim并指定程序优先级为-5

5.改变进程优先级

  • renice -n 优先级数字 进程pid
  • renice -n -5 1806 #改变1806进程的优先级为-5

4.环境中进程的前后台调用

jobs查看被打入环境后台的程序
按ctrl+z把占用终端的进程打入后台
fg jobsnum把后台进程调回前台
bg jobsnum把后台暂停的进程运行
comm &让命令直接在后台运行

注意:

  • 输入jobs会出现jobsnum
  • +是输fg/bg时会默认执行的

5.进程信号

常用信号等级:

1进程重新加载配置
2删除进程在内存中的数据
3删除鼠标在内存中的数据
9强行结束单个进程(不能被阻塞)
15正常关闭进程(可能会被阻塞)
18运行暂停的进程
19暂停某个进程(不能被阻塞)
20把进程打入后台,相当于ctrl+c
man 7 signal查看信号详细信息

另:

kill -信号 进程pid结束这个信号,精准处理
killall -信号 进程名字可批量结束
pkill -u studnt -信号结束所有普通用户student,对用户进程进行处理

6.进程的动态监控top

l显示cpu每个核的负载
s调整刷新频率
ccpu负载排序
m内存使用量排序
h查看帮助
u查看指定用户进程
k对指定用户发起信号
q退出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值