1.什么是进程?
程序(program)放置在储存媒体中(如硬盘/光盘/软盘/磁带等),为实体文件的形态存在
进程:程序被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是一个正在运行中的程序。
进程状态:
R(Running):该程序正在运行中
S(sleeping) :该程序目前在睡眠状态(idle)但可以被唤醒(signal)
D不可被唤醒的睡眠状态,通常进程可能在等待I/O的情况
T停止状态(stop)可能是在工作控制(背景暂停)或除错(traced)状态 可以通过命令强制唤醒
Z(Zombie):僵尸状态,程序已经终止但却无法被移除至内存外
2.查看进程:
(1)图形方式查看
gnome-system-monitor

(2)在命令行里查看系统进程 ps
| ps -a | 在shell中运行的所有进程,不包含环境信息 |
| ps a | 在shell中运行的所有进程, 包含环境信息 |
| ps -A | 所有进程,包括环境 |
| ps -d | 所有进程但不包括shell信息 |
| ps e | 显示进程的扩展信息 |
| ps x | 显示左右有输出设备(有tty终端)的进程 |
| ps -u | 显示用户信息 |
| ps f | 显示从属关系 |
ps -a shell下的所有进程不包含环境信息
![]()
pa a 同上 包含环境信息

ps -A /-e 所有进程

ps -d 所有进程但不包括shell信息

ps ae 显示进程的扩展信息

ps x 显示左右有输出设备(有tty终端)的进程

ps -u 显示用户信息

ps f 显示从属关系

ps e 显示进程的详细信息(系统资源的调用)

ps常用组合
ps af 显示进程的从属关系(父进程停止 子进程自动结束,但有例外,孤儿进程不受父进程控管,只受系统初始化进程控管)

ps aux 显示系统中所有进程并显示进程用户

ps ef 显示进程详细信息并显示进程父子关系

ps ax 显示当前系统中

pstree 显示系统树

##显示进程指定信息
ps -o xxx ##显示进程的指定信息
comm##进程名称
user##进程所有人
group##进程所有组
%cpu ##进程cpu使用率
%mem ##进程内存使用率
pid ##进程id
nice ##进程优先级
可以一次显示所有想看的进程信息

## 进程排序
ps ax --sort=
+%cpu|-%cpu
+%mem|-%mem
其中,+表示升序排列,-表示降序排列
对cpu升序排序查看进程

对mem降序排序查看进程

实验:获得系统中内存使用量排在前5的进程id(第一行中为pid的名称,结果中不需要显示)

##stat中显示的信息##
| S | 进程状态 |
| I | 内存中有锁定空间 |
|
N | 优先级低 |
|
< | 优先级高 |
| + | 前台运行 |
| s | 顶级进程 |
3.进程优先级
(1)进程的优先级范围
-20~19
(2)优先级查看
pa ax -o pid,nice,comm

(3)指定某个优先级开启进程
nice -n 优先级数字 进程名称
nice -n 5 gedit ##开启gedit并且指定程序优先级为5

低优先级 5 多个N
高优先级 -5 <
命令行中
renice -n 10 pid
将进程号为31618的vim进程优先级重新设定为-6

4.环境中前后台的调用
jobs ##查看被打入环境后台的进程

ctrl+z ##把占用终端的进程打入后台
bg jobsnum ##把后台暂停的进程运行
fg jobsnum ##把后台进程调回前台

注意:当不写jobsnum时,默认调回优先级高的进程。
comm & ##让命令直接在后台运行
5.进程信号
1.常用信号等级
| 1 | 进程重新加载配置 |
| 2 | 删除进程在内存中的数据 |
| 3 |
删除鼠标在内存中的数据 |
| 9 | 强行结束单个进程(不能被阻塞) |
| 15 | 正常关闭进程(可能会被阻塞) |
| 18 | 运行暂停的进程 |
| 19 | 暂停某个进程(不能被阻塞) |
| 20 | 把进程打入后台(可以被阻塞) |
| man 7 signal | 查看信号详细信息 |
kill -信号 进程pid
killall -信号 进程名称
pkill -u student -信号
+ 正在接受服务的
- 次优先当+调回前台-->+
实验为:
删除pid为2372的进程在内存中的数据

6.进程的动态监控
top

不同按键的作用
| 1 | 显示cpu每个核的负载 |
| s | 调整刷新的频率 |
| c | cpu负载排序 |
| m | 内存使用量排序 |
| h | 查看帮助 |
| u | 查看指定用户进程 |
| k | 对指定进程发起信号 |
| q | 退出 |
1. ##显示cpu每个核的负载

s ##调整刷新频率

c ##CPU负载排序
m ##内存使用量排序
h ##查看帮助

u ##查看指定用户进程
k ##对指定进程发起信号
q ##退出
7.控制服务
1.什么是服务?
系统中运行的对于系统本身没有意义,但对客户主机有重大意义的程序叫服务性软件,简称服务。
服务器:安装了服务性软件的系统
2.用什么控制服务
系统初始化进程可以对服务进行相应的控制
3.当前系统初始化进程是什么
systemd ###系统初始化进程
pstree ###显示系统中的进程树
4.进程控制命令
ssh----->shhd
client server
systemctl ##服务控制命令
systemctl status sshd ##查看服务状态,inactive(不可用)active(可用)
systemctl start sshd ##开启服务
systemctl stop sshd ##关闭服务
systemctl restart sshd ##重启服务
systemctl reload sshd ##重新加载服务配置
systemctl enable sshd ##设定服务开机启动
systemctl disable sshd ##设定服务开机不启动
systemctl list-units ##列出已经开启服务当前状态
systemctl list-unit-files ##列出所有服务开机启动的状态
systemctl list-dependencies ##列出服务的依赖
systemctl set-default multi-user.target ##设定系统启动级别为多用户模式(无图形)
systemctl set-default graphical.target ##设定系统启动级别为图形模式
本文介绍了进程的概念、状态及如何通过命令行工具查看、管理和控制进程。包括进程优先级设置、前后台进程切换、发送进程信号等内容。
3491

被折叠的 条评论
为什么被折叠?



