一、线程以及进程的解释
- 进程的定义:
程序是静态的代码文件
进程是程序运行时的一个副本
进程是有生命周期的 - 线程&进程
线程是程序的最小单位
进程是资源调用的最小单位 - 进程状态的分类
执行态R:分为runing即程序正在被执行,ready表示程序正在等待被执行
不可唤醒的休眠 D: 表示程序在执行中缺少必要的条件无法被唤醒
可唤醒的休眠S:可唤醒的休眠态表示程序在执行过程中资源加载时间过长,超过最大cpu占用时长
暂停状态T:暂停状态一般为人为制造的,表示将程序暂停执行。
僵死态Z:表示程序在执行过程中出现缺少必要条件即不可唤醒的休眠
二、进程的管理以及查看
- 图形查看方式
gonome-systemctl-monitor ##使用图形界面打开进程管理器
- ps命令
ps ##显示当前进程的信息
ps a ##显示当前和当前终端相关的进程
ps x ##显示和当前进程无关的进程
ps ax ##显示所有进程
ps -e ##显示所有进程
ps u ##按照用户信息进行归类查看方式
ps f ##按照进程的层级结构进行查看方式
ps -H ##按照层级结构进行显示所有进程
ps o ##查看进程的指定参数
ps -o ##按照指定参数查看进程
ps ax --sort=%cpu ##表示使得全部进程按照cpu使用量进行升序的排序
ps ax --sort=-%cpu ##表示使得全部进程按照cpu使用量进行倒序排列
ps ax ##显示的信息如下
pid ##进程的id
TTY ##进程使用到的终端
STAT ##进程目前的状态
TIME ##进程的开启时间
ps aux ##显示如下
USER ##进程的所有人
PID ##进程的pid
TIME ##进程的开启时间
START ##进程的状态
TTY ##进程使用的终端
COMMAND##进程的名称
VXZ ##进程使用的虚拟内存大小
%CPU ##进程的cpu使用量
%MEM ##进程的内存使用量
RSS ##内存中的常驻数据大小
STAT ##进程的开启时间
- 进程的过滤
进程的过滤需要使用管道符来进行过滤
ps ax | pgrep -u 8888 ##表示在所有进程中查找uid为8888的用户的进程并且输出
ps ax | pgrep -U westos ##表示在所有进程中查找名程为westos的用户的进程
ps ax | pgrep -l cat ##表示显示所有进程中的名字为cat的这个任务
ps ax | pgrep -t tty ##表示显示所有进程中使用tty终端的进程
ps ax | pgrep -aU westos ##表示显示用户westos的所有进程的完整名称
ps ax | pgrep -pU westos #表示显示用户westtos的完整进程同时将下级子进程显示出来
但是pgrep命令无法显示vim的进程pid
pidof vim ##表示显示vim的pid
- top动态进程的查看
top命令的指令分为内部和外部指令
外部指令
top -b ##使用批次凡方式显示
top -n 3 ##指定刷新批次
top -d 2 ##指定刷新的频率
显示内容解释
第一行:系统开启时间、系统运行时长、系统中的用户、1分钟内的任务等待时长、5分钟内的任务等待时长、15分钟内的任务等待时长
第二行:系统当前进程总数、运行进程总数、可唤醒的休眠进程数、不可唤醒的休眠的进程、僵尸进程
第三行:用户cpu的使用量、内核空间、nice值调整时间、等待io时间、硬件中断时间、软件中段时间
第四行:当前内存总量、空闲内存总量、占用内存总量、缓存量
第五行:交换分区用量
top 的内部指令
s ##更改刷新频率
P ##按照cpu使用量进行排序
M ##按照内存使用量进行排序
T ##按照cpu占用时间进行排序
l ##开启系统负载信息
t ##开启和关闭系统cpu的占用时间
K ##操作进程即发送进程的信号
u ##按照用户的进程操作
- 进程的优先级
进程的优先级表程序的重要性,即在多任务的情况下任务是否会优先执行该命令
进程的优先级范围
0-139
内核自控范围:0-99
用户可控范围:100-193
nice值范围
-20到20
数值越小范围优先级越高
renice -n -5 77777 ##表示将进程77777的优先级更改为-5级
nice -n -5 cat ##表示以-5级的优先级运行cat这个命令
进程优先级的表示
S ##表示该进程为可唤醒的休眠态Sleeping
s ##表示为顶级进程
< ##表示进程优先级较高
T ##表示该进程为暂停状态
N ##表示为优先底层程序
R ##表示为执行态进程
+ ##表示该程序在前台运行
- 进程的前后太调用
将进程切回后台的快捷键
<ctrl>+z ##将当前在前台的程序切换回后台运行
jobs ##显示当前shell的后台运行的脚本
fg ##将后台的脚本调回到前台运行
bg ##将后台程序已经暂停的运行起来
& ##表示将该命令打入后台运行
- 进程的信号
1 ##重读配置文件
2 ##清空当前进程的数据
3 ##清空内存中的鼠标
9 ##强行结束进程不会被阻塞
15 ##结束进程但是会被阻塞
18 ##运行暂停的进程
19 ##暂停进程不会被阻塞
20 ##暂停进程会被阻塞
kill 9 7777 ##表示将进程7777强制结束
kill 15 7777 ##表示将进程的7777结束
kill 18 7777 ##使得进程在后台自动运行但是如果缺少条件的话会自动进入休眠
kill 19 7777 ##使得进程7777在后台暂停
- 进程的手护
systemctl status ssh ##表示查看ssh这个服务的列表内容
systemctl sart ssh ##表示开启ssh这个服务
systmectl stop ssh ##表示关闭ssh这个服务
systemctl reloader ssh ##表示重新加载这个服务的配置文件,不改变进程的编号可以更该进程的配置
systemctl restart ssh ##表示重新开启ssh这个服务,实际过程就是关闭在开启但是进程改变了
systemctl enable ssh ##表示ssh这个服务开机自启这个服务
systemctl disable ssh ##表示这个服务开机不进行自启
systemctl enable --now ssh ##表示这个服务被设置为开机自启的同时,将ssh这个服务直接开启
systemctl list-units ##表示显示所有服务的依赖性
systemctl list-units-files ##查看所有服务的开机状态
systemctl mask ssh ##表示冻结ssh这个服务
systemctl unmask ssh ##表示解冻ssh这个服务
systemctl set-default mulit-user.target ##设置操做模式为无图形的网络模式
systemctl set-default graphial.target ##设置操作模式为有图形的网络模式
systemctl get-default ##查看操作系统的运行模式