六.Linux中的进程管理
1.进程与线程:
(1)进程:进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,进程是指程序运行时的形态,进程是程序的一个副本,进程是有相应的生命周期(准备期,运行期,终止期)。
线程:进程是资源调用的最小单位,线程是进程的最小单位。
(2)进程的状态:
R,(TAKS_RUNNING) | 可执行态(running,ready) |
S,(TASK_INTRRUPTABLE) | 可唤醒休眠 |
D,(TASK_UNINTRRUPTABLE) | 不可唤醒休眠 |
T,(TASK_STOP) | 暂停状态 |
Z,(EXIT_ZOMBIE) | 僵死态 |
2.进程查看命令:
(1)图形进程查看工具
“gnome-system-monitor” 打开如图所示的任务管理器:
(2)ps 命令:(进程查看命令)
【1】ps 命令的三种执行模式 unix bsd GNU(其中,unix和GNU模式命令前有“-”,bsd没有,GNU的参数指令通常更长)
【2】ps 命令各个参数的作用:
“a” 与终端相关的进程(当用户登陆系统后产生的进程)
“x” 与终端无关相关的进程
“u” 用户信息归类的查看方式
“f” 进程层级关系
“o” 显示指定参数 pid comm nice pri pcpu ppid stat,user,group
#-e 显示所有进程
#-f 显示信息的完整格式
#-H 显示进程的层级结构
#-o 显示指定参数
#--sort= 表示排序
显示程序的cpu占有率,命令,gid并以cpu占有率反序(由大到小)进行排序;
【3】“ps ax”显示信息如下:
PID ---------------进程id
TTY ---------------进程用到的终端
STAT--------------进程状态
TIME--------------进程占用cpu时长
COMMAND---- 进程名称
“ps aux”显示信息如下:
显示 | 意义 |
---|---|
USER | 进程所有人 |
PID | 进程id |
%CPU | 进程使用cpu的用量 |
%MEM | 进程所用到的内存用量 |
VSZ | 进程使用的虚拟内存大小 |
RSS | 进程常驻内存中的数据大小 |
TTY | 进程用到的终端 |
STAT | 进程状态 |
START | 进程运行时长 |
TIME | 进程占用cpu时长 |
(3)pgrep 进程过滤命令:
【1】
命令 | 作用 |
---|---|
-u uid | 显示指定用户进程 (uid) |
-U user | 显示指定用户进程(名字) |
-t tty | 显示指定终端进程 |
-l | 显示进程名称 |
-a | 显示进程的完整名称 |
-P | 进程下的子进程 |
过滤westos下所有的进程完整名称;
【2】pid的查看命令:
“pidof comm“, 表示查看comm命令的pid;
(4)top 动态进程查看命令
【1】top命令的参数:
“-d ” 指定刷新频率
“-b” 以批次方式显示
“-n” 指定显示的批次数
显示top进程信息,每秒刷新一次;显示top进程信息,显示一页;
【2】top内部的指令
内部指令 | 作用 |
---|---|
P | cpu排序 |
M | 内存排序 |
T | cpu累计使用时常排序 |
l | 关闭/开启uptime信息 |
t | 关闭/开启cpu&task |
s | 指定刷新频率 |
k | 操作进程 |
u | 查看指定用户进程 |
练习:输出内存占用量前5的进程的pid(输出样例:001 002 003 …)
3.进程优先级
(1)系统中程序的优先级范围: 0–139;
内核自控优先级范围:0-99
用户可控优先级:100-139
即数值越低,进程的优先级越高;
(2)nice值的范围:-20-19(分别对应100–139)pri范围:0-39(越高越优先)
(3)更改进程优先级:
”renice -n -5 43331(pid)“ ,表示更改优先级
“nice -n -5 comm”,表示以指定优先级打开进程
(4)stat 字符表示:
S -----sleeping
< -----优先级高
s -----顶级进程
T-------stop
N-------优先级底
R--------running
“+”-------运行在前台
4.进程前后台调用
“ctrl+z”---------把占用shell的进程打入后台挂起
bg---------------把后台挂起的进程运行起来
fg----------------把后台进程调回前台
& ---------------运行进程在后台
jobs-------------查看当前shell中在后台的所有工作
5.进程信息号
(1)进程信号;
1 ----------重新家在系统配置文件(source)
2 ----------清空内存中的进程数据
3 ----------清空内存中的鼠标(ctrl+)
9 ----------强行结束进程(不能被阻塞)
15----------正常关闭进程(会被阻塞)
18-----------运行被暂停的进程
19----------暂停进程(不会被阻塞)
20-----------暂停进程(会被阻塞的)
(2)进程信号控制工具:
“kill 进程信号 pid”
“killall 进程信号 进程名字”(结束该名字的所有进程)
“pkill 进程信号 进程条件”(例如:pkill 9 -u westos)
6.systemd守护进程
(1)systemctl命令的用法(控制服务)
start ##开启
stop ##关闭
status ##查看状态
reload ##重新加载
restart ##重新启动服务
enable ##设定服务开机启动
enable --now ##设定服务开机启动并当前开启服务
disable ##设定服务开启不其动
list-units ##查看系统所有服务当前状态
list-unit-files ##查看服务开机状态
list-dependencies ##列出服务依赖性
mask ##冻结服务
unmask ##解锁
set-default ##设定系统运行模式
#multi-user.target 无图形网络模式
#graphical.target 有图形的网络模式
查看所有服务的开机自启动状态(static表示不能控制的)
查看系统当前运行模式为:图形网络模式;
(2)系统的6种运行级别(模式)(0-6)
0 关机
1 单用户模式(类似window安全模式)
2 无图形的网络模式
3
4
5 有图形的网络模式
6 重启
runlevel:查看当前运行模式
startx:跳转到x模式,不改变运行模式
init x:改变运行模式,切换到x运行模式