[oeasy]python0033_任务管理_jobs_切换任务_进程树结构_fg
查看进程
回忆上次内容
上次先进程查询
ps -elf查看所有进程信息ps -lf查看本终端相关进程信息
杀死进程
kill -9 PID给进程发送死亡信号
运行多个
python3 show_time.py的话- 各个进程独立
python3 show_time.py大概 8+M- 各占内存
- 这些进程之间是什么关系呢?
编辑
具体查询
zsh进程相关的 3 个进程
zsh(当前的 shell 环境)
- zsh(shell本身)进程
/usr/bin/python3 /home/shiyanlou/sleep.py
- 输出时间的python程序
ps -lf
- 查询进程的ps进程
编辑
- 这进程之间有父子关系
父子关系
pid是指进程的id- process id
ppid是指 父进程 id- parent process id
ppid是pid的爸爸
编辑
ps和python3都是zsh的子进程python3 这个进程占内存是 SZ
- 4860 个 Page
每个 page 大概 4K
- 总共 10+M
编辑
python3 这个文件不是本身才 4.3M 么
- 都装进内存也就是 4.3M
- 都装进内存页没有 10+M 呀?
10+M 的原因
除了基础的部分(内建模块函数)之外
- print()
- ord()、chr()
- int()、hex()、bin()
还有新加载的部分
sleep.py- 还有
import进来的time这个module
实际分配
ps -o pid,ppid,sz,vsz,rss,cmd
- SZ 是欲分配的内存用页(4K)来当单位
- VSZ 是欲分配的内存用 K 来当单位
编辑
- RSS 非交换区的内存用 K 来当单位
- 也就是说实际这个东西也就 8+M
编辑
后台多任务查询jobs
- 还可以用jobs查看当前的任务
编辑
jobs可以看到后台的任务- 我们可以切换任务到前台吗
将任务切换到前台
编辑
fg 可以
- 将最后一个任务(3#job)
- 切换到前台
- 可以切2#job吗?
指定任务进行切换
我们可以用 fg 加参数的方式
- 把指定编号的进程恢复到前台
- 注意前面的 1193、1527、1542 分别是他们的 pid
编辑
这就是前后台切换
- 用 ctrl + z 把当前进程切换到后台
- 用jobs查询当前shell的后台任务
- 用ps可以查看进程
- 用kill可以结束进程
- 用 ctrl + c 结束当前前台的进程
- jobs这个词怎么来的呢?
jobs
词源字典
- 凯尔特语(gob)、(gop)
- 原意就是口(the mouth)
中古英语就变成(jobbe)
- 一堆(lump)
- 一口(mouthful)
- 再演变而成一件工作
编辑
work
- 是长时期稳定的工作
- 全日制的工作
jobs
- 是临时突发的工作
- 零工
- 偷窃也叫jobs
如果两个jobs的话
- 占用内存会变小吗?
两个进程
- 我们开两个
show_time.py - PID 分别是 422、514
编辑
然后观察到
- 每个 python进程 实际分配差不多都是 9M(RSS)
- 相互之间是独立的兄弟进程
但是从逻辑上都属于zsh的子进程
- 先运行的进程在非交换区的内存占用略高
- 如果开多个xfce 进程情况又是如何呢?
- 再打开几个xfce终端
进程层次关系
ps -elf
- 拉到最后
- 找zsh和上级的xfce4
编辑
祖父是xfce4-terminal
大伯是zsh(252)
- 家里三个兄弟
二伯是zsh(405)
- 家里也是三兄弟
就像一棵树
- 可以用树的形式观察吗?
pstree
- pstree -h 命令查看这棵树
编辑
- 可以看到清晰地父子兄弟关系
总结
进程前后台切换
- ctrl + z 把当前进程切换到后台并暂停
jobs查看所有作业用
fg可以把进程再切回前台fg %1可以把指定的进程切回前台
- 用
bg可以让进程在后台运行
进程查询
ps -elf查看所有进程信息ps -lf查看本终端相关进程信息kill -9 PID给进程发送死亡信号pstree -h可以查看进程树
运行多个
python3 sleep.py的话- 各个进程独立
python3 sleep.py大概 7M- 各占内存
这个切进程很好用
- 不过运行进程的时候总是满屏刷时间
- 可以固定在屏幕的某个位置刷新时间吗?
- 我们下次再说!
- 蓝桥->oeasy 教您玩转 python_Python - 蓝桥云课
- github->https://github.com/overmind1980/oeasy-python-tutorial
- gitee->oeasy教您玩转python教程: 面向零基础初学者的简明易懂的 Python3 入门课程,对没有编程经验的同学也非常友好。在vim下从浅入深,逐步学习。从基础入门学习到爬虫。
- 视频->[oeasy]教您玩转python零基础学python入门教程(合集)_哔哩哔哩_bilibili 作者:oeasy
[oeasy]python0033_任务管理_jobs_切换任务_进程树结构_fg的更多相关文章
- Python进阶(5)_进程与线程之协程、I/O模型
三.协程 3.1协程概念 协程:又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存 ...
- Python进阶(2)_进程与线程的概念
1 进程与线程相关概念 1.1 进程 进程定义: 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成,是最小的资源管理单元 程序:用来描述进程要完成哪些功能 ...
- 操作系统(2)_进程管理_李善平ppt
所有程序都有CPU和io这两部分,即使没有用户输入也有输出. CPU最好特别忙,io空闲无所谓. 程序/数据/状态 三个维度来看进程. 等待的资源可能是io资源或者通信资源(别的进程的答复). 一个进 ...
- Python笔记_第四篇_高阶编程_进程、线程、协程_4.协程
1.协程的概念: 子程序或者子函数,在所有语言中都是层级调用,比如A调用B,再B执行的过程中又可以调用C,C执行完毕返回,B执行返回,最后是A执行完毕返回.是通过栈来实现的,一个线程就是执行一个自称, ...
- Python笔记_第四篇_高阶编程_进程、线程、协程_3.进程vs线程
1.多任务的实现原理: 通常我们会设计Mater-Workder模式,Master负责分配任务,Worker负责执行任务,因此多任务环境下,通常是一个Master,多个Worker 2.多进程: 主进 ...
- Python笔记_第四篇_高阶编程_进程、线程、协程_1.进程
1. 多任务原理: 现代操作系统,像win,max os x,linux,unix等都支持多任务. * 什么叫做多任务? 操作系统可以同时运行多个任务. * 单核CPU实现多任务原理? 操作系统轮流让 ...
- zabbix_监控_进程
一.根据进程名称监控 1.创建Item(只能通过进程名.用户过滤进程) http://www.2cto.com/os/201405/302249.html http://www.ithao1 ...
- C# Process类_进程_应用程序域与上下文之间的关系
进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.进程之间是相对独立的,一个进程无法直接访问另一个进程的数据(除非分布式),一个进程运行的失败也不会影响其他 ...
- C# Process类_进程管理器Demo
Process用于管理计算机的进程,下面给出一个C#进程管理器的DEMO. namespace ProcessManager { public partial class Form1 : Form { ...
- python并发_进程_multiprocessing
多进程基础, 主要是用了 multiprocessing模块 : 在一个python进程中开启子进程,start方法和并发效果. import time from multiprocessing im ...
随机推荐
- 【C#】初次使用webapi的体会
webapi controller 要继承 ApiController 重写权限验证 ,记得使用 System.Web.Http下的AuthorizeAttribute. webapi默认路由 ...
- RTOS官方文档学习
任务与协程 区别 一个程序可以只有任务.只有协程.二者都有,但不可以通过队列/信号量互相传递数据 任务特点 任务之间可以互相独立 每个任务分配自己的堆栈,提高了RAM使用率 操作简单.按优先级抢占式执 ...
- linux上使用webdav
webdav 干什么用的? 对于我来说,主要是用来同步文件的,n年以前,那时候还啥都不懂,要分享一个文件都是用qq/或者微信发,那时候就一个手机一个电脑,而且文件大部分是分享给认识的人. qq分享完全 ...
- ra6m3之adc踩坑日志(基于rt-thread )
问题描述 1.已经用fsp工具正确配置Pins 2.已经用fsp工具正确配置Stacks 3.问题是根本没有在RT-Thread Studio看到HAL相关的ADC代码,也没看到Settings里边的 ...
- NOIP模拟90(多校23)
T1 回文 解题思路 原来 \(n^3\) 可以过 500 ... 先枚举一下路径长度,对于同一路径长度点数最多是 \(n\) 个,我们可以接着枚举从 \((n,m)\) 出发的路径长度相同的点. 然 ...
- k8s——kubctl命令基础
语法 kubevtl [command] [type] [name] [flags] command: 指定要对一个或多个资源执行的操作,例如,`create`,`get`,`describe`,`d ...
- 自动化搭建专属 AI 绘图服务
通义万相AIGC技术已经比较成熟,结合阿里云的计算和存储产品可以方便的搭建自己专属的 AI 绘图服务.例如<创意加速器:AI 绘画创作>这个解决方案,利用阿里自研的通义万相AIGC技术在 ...
- Java映射 转换post response T data
Java映射 转换post response data 接上篇Java泛型对象在http请求和响应对象中的封装https://www.cnblogs.com/oktokeep/p/17688322.h ...
- 09-CentOS软件包管理
简介 CentOS7使用rpm和yum来管理软件包. CentOS 8附带YUM包管理器v4.0.4版本,该版本现在使用DNF (Dandified YUM)技术作为后端.DNF是新一代的YUM,新的 ...
- GitHub上狂揽62Kstars的程序员做饭指南
写在前面 作为一名程序员,我们经常会在全球最大的同性交友网站 GitHub上寻找一些优质的开源项目来学习,以提升自己的专业技能. 今天给大家推荐的是一个GitHub上狂揽61K的开源项目.项目名叫做H ...