当前位置: 首页 > news >正文

【Linux】系统进程管理

目录

1.什么是进程和线程

1.1进程

1.2线程

2.进程状态

3.进程的查看方法

3.1在图形界面查看进程

3.2在命令行查看进程

ps

ps命令练习

pgrep

pidof

top

4.进程的前后台调用

5.进程的优先级---nice,renice

6.进程信号--kill,killall,pkill

7.systemd守护进程---systemctl


1.什么是进程和线程

1.1进程

1. 进程是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位。

2. 进程包含了程序执行所需的各种资源,如内存空间、文件描述符等。

3. 每个进程都有自己独立的内存空间和系统资源,不同进程之间相互隔离。

4. 程序是静态的代码文件,进程是指程序运行时的形态(调用系统资源将静态的代码文件运行起来)。

5. 进程是程序的一个副本。

6. 进程是有生命周期的(准备期,运行期,终止期);生命周期通常从安装开始,到最终被用户卸载结束。在这个过程中,它会经历不同的阶段,包括引导、运行、维护和再次引导。

1.2线程

1. 线程是进程中的一个执行单元,是 CPU 调度和分派的基本单位。

2. 一个进程可以包含多个线程,这些线程共享进程的内存空间和系统资源

3. 每个线程有自己独立的栈空间和程序计数器、

4. 线程之间可以并发执行,提高程序的执行效率

5. 当进程是多任务,cpu是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程

2.进程状态

为了弄明白正在运行的进程是什么意思,我们需要知道进程的不同状态。一个进程可以有几个状态(在Linux内核里,进程有时候也叫做任务)。

1.R(TAKS_RUNNING)可执行态(running,ready)

2.S(TASK_INTRRUPTABLE)可唤醒休眠

3.D(TASK_UNINTRRUPTABLE)不可唤醒休眠

4.T(TASK_STOP)暂停状态

5.Z(TASK_ZOMBIE)僵死态

3.进程的查看方法

3.1在图形界面查看进程

gnome-system-monitor  //在命令行中打开图形中的进程工具

3.2在命令行查看进程

ps

---进程状态查看

ps具有三种命令的执行风格 

unix  //ps命令的参数跟- 例如 ps -e ,ps -o

bsd  //ps命令不用跟- ,例如 ps ax ,ps aux

GUN //长参数

--------------------------------------------------------------------------------------------------------------

ps参数

//与终端相关的进程

//与终端无关的进程

ps ax  //查看所有进程信息

u

//使用用户信息归类的查看方式

f

//进程层级关系

o

//显示指定参数

pid comm nice pri pcpu ppid stat user group %mem %cpu

【使用部分参数来验证】

-e

//显示所有进程,相当于bsd风格的ps ax

-f

//显示信息的完整格式

-H

//显示进程的层级结构,相当于bsd风格的ps f,与之不同的是使用缩进

-o

//与bsd风格的ps o 作用一摸一样,显示指定参数

--sort=

//对进程进行排序 ,=后面跟的是依据什么参数继续排序,=后跟“-”进行倒序

ps命令练习

问题:使用ps查看内存使用量排前五的进程的pid

pgrep

//进程过滤

pgrep参数
-u

//u 后面跟所要过滤出来进程的uid

-U 

//U 后面跟的是进程名

-t

//tty显示指定终端进程

-l

//显示进程名称

-a

//显示进程的完整名称

-P

//显示进程的子进程

pidof

pidof vim

//查看vim的pid

top

//动态进程查看

------------------------------------------------------------------------------------------------------------------------------

top参数
-d

//指定刷新频率

top -d 0.1 //默认为3s

-n

//指定显示的批次数量,次数结束就不刷新

top -d 1 -n 2 //在刷新频率为1s/次的情况下,刷新两次就不刷新

-b

//不显示系统信息,只显示进程信息

top -b

-------------------------------------------------------------------------------------------------------------------------

top内部命令

//在top界面键盘输入对应的字母就会排序一次

P

//cpu排序

M

//内存排序

T

//累计占用cpu时间排序

-------------------------------------------------------------------------------------------------------------------------

l

//关闭/开启uptime信息

t

//关闭/开启cpu&task

s

//指定刷新频率

k

//操作进程

u

//查看指定用户进程

4.进程的前后台调用

<ctrl> + <z> //把占用shell的进程打入后台挂起

bg //把后台挂机的进程运行起来

fg  //把后台进程调回前台

命令& //运行进程在后台

jovs  //查看当前shell中在后台的工作

5.进程的优先级---nice,renice

进程优先级是 Linux 内核用于决定 CPU 资源分配的关键指标,优先级越高的进程越有可能被 CPU 优先调度执行。

优先级范围值:

#范围: 0--139

#内核自控优先级范围:0-99

#用户可控优先级:100-139

linux的优先级对应用户优先级为----nice值

-20-19

unix的优先级对应用户优先级为----pri值

0-39

更改优先级

nice

//指定优先级打开进程

renice

//更改优先级

6.进程信号--kill,killall,pkill

进程信号有0-31种

其中以下的是可控的,其他为不可控

7.systemd守护进程---systemctl

systemctl status firewalld  //查看进程状态,以火墙为例

systemctl stop firewalld  //关闭当前状态

systemctl start firewalld //启动当前状态

systemctl disable firewalld  //禁止开机启动

systemctl enble firewalld  //开启开机启动

systemctl disable --now firewalld  //禁止当前与开机的状态

systemctl enable --now firewalld  //禁止当前与开机的状态

systemctl list-units  //查看系统所有服务的当前状态

systemctl list-unit-files //查看系统服务开机的状态

systemctl list-dependencies //列出系统服务依赖性,启动服务所依赖的服务

systemctl mask firewalld  //冻结服务

systemctl unmask firewalld //解冻

systemctl get-default //查看系统运行模式 

系统运行模式有6种,0-6

#0-6                              

#0 关机                                    

#1 单用户模式                                  

#2 无图形网络模式                                    

#3 无图形网络模式                                    

#4 无图形网络模式                                  

 #5 图形网络模式                                    

#6 重启

runlevel //查看系统运行模式的数字

init //设置当前状态的系统运行模式

systemctl set-default  系统运行模式 //设定系统运行模式

#multi-user.target 无图形网络模式                   

#graphical.target 有图形的网络模式  

当不小心把默认系统模式设置为runlevel6.target后

在初始化界面按“e”

如图运行就能恢复为有图形的系统模式了


http://www.mrgr.cn/news/97701.html

相关文章:

  • oracle 11g密码长度和复杂度查看与设置
  • 处理Excel的python库openpyxl、xlrd、xlwt、pandas有什么区别,搞懂它
  • python三大库之---pandas(二)
  • this指针 和 类的继承
  • Qt项目——记事本
  • HarmonyOS应用开发者高级-编程题-001
  • 构建一个最简单的UDP服务器和客户端并逐行解析
  • 新一代达梦官方管理工具SQLark:可视化建表操作指南
  • 【QT】QT编译链接 msql 数据库
  • 用PointNet++训练自己的数据集(语义分割模型semseg)
  • vscode调试vite项目断点(debugger)
  • linux开发环境
  • 如何高效生成达梦数据库测试数据?官方管理工具来了!
  • 实习技能记录【3】-----Git操作
  • 蓝桥杯——走迷宫(BFS)
  • Houdini20.5apex绑定模块入门学习笔记
  • verilog有符号数的乘法
  • 谈Linux之磁盘管理——万字详解
  • Heap_dijkstra模板
  • K8S核心技术点