Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0271
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
本教程同步发布在:
个人网站: `https://oeasy.org`
蓝桥云课: `https://www.lanqiao.cn/courses/3584`
GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 除了 基础部分(内建 模块函数)之外
- print()
- ord()、chr()
- int()、hex()、bin()
- 还有 新加载的部分
show.pyimport进来的time这个module
- time属于内建(built-in)的module
- 能看看内存里面具体长什么样子吗??🤔
vi show.py
- 恢复show.py
#!/usr/bin/python
i = 0
import time
while True:
i = i + 1
print(i, "===", time.asctime())
time.sleep(1)- 运行show.py
python3 show.py >> s.log &
- 观察pid
ps -o pid,ppid,sz,vsz,rss,cmd- 观察到第一列的pid
cat /proc/进程的PID/maps
- 具体位置
- 如果再开一个show.py呢?
python3 show.py >> s2.log &
- 我们开两个
show.py- 都是 后台运行
- PID 分别是
- 367
- 408
- 然后观察到
- 2个 python进程 内存分配差不多
- 都是 9M(RSS)
- 相互之间是独立的兄弟进程
- 进程与进程之间是相互隔离
- 2个 python进程 内存分配差不多
- 如果 再开个终端
- 再跑几个 show.py
- 情况又是如何呢?
- 新开终端
- 再新开 show.py
- 可以看看这些进程关系吗?
ps -elf
- 拉到最后
- 找zsh和上级的xfce4
- 祖父是xfce4-terminal
- 大伯是zsh(252)
- 家里三个兄弟
- 二伯是zsh(405)
- 家里也是三兄弟
- 大伯是zsh(252)
- 就像一棵树
- 可以用树的形式观察吗?
pstree -h
- 用命令查看这棵进程树
- 可以看到清晰地父子兄弟关系
- 原来程序从硬盘读到内存之后
- 是这样运行的!
- 如果 父进程 挂断
- 子进程 还存在吗?
- 关掉所有的终端窗口
ps -elf
- 之前的python进程
- 都消失了
- 皮之不存 毛将焉附
- 想要 python 进程 不消失
- 该怎么做呢?
- 前面加上 nohup 再运行
nohup python3 show.py >> s.log &
- 后台运行进程
- 关闭当前终端
- 开一个 新终端
ps -elf
- 新开一个终端
- 查看进程
-
373 进程(python3 show.py)
- 依旧存在
- 父进程ppid 为 1
- 没有挂断
-
nohup 是什么意思呢?
- 没有挂断
- 不因为 所在终端窗口的关闭 而关闭
- nohup运行时候的提示怎么理解?
- 错误信息输出被忽略了
- 怎么才能不被忽略呢?
- nohup 不会挂断
-
s.log 标准输出流 追加输出到s.log
- 2>&1 错误信息 输出到标准输出流
- & 后台运行
-
nohup python3 show.py >>s.log 2>&1 &
- 可以有什么更好 控制进程的方法吗?
- 重启 整个蓝桥环境
- 开三个进程 都在后台运行
jobs
- 可以用jobs
- 查看当前终端后台的任务
- 可以 把任务
- 切换到前台 吗
- fg 可以
- 将 待切换的任务
- 前面有+号的 3#job
- 切换到 前台
- 将 待切换的任务
- 屏幕卡住了 想把这个进程挂起
- ctrl + z
- 终端 又回到 可以输出的状态了
jobs
- 3任务 挂起
- 可以切 1#job 到前台 吗?
fg %1
- 可以用 fg 加参数的方式 切换进程
- ctrl + z 挂起进程
- 2号进程 还没挂起
fg %2
- 三个进程都挂起了 suspended
- 其中的+、-号
- 是什么意思呢?
- +(加号)
- fg默认的 下一个job
- -(减号)
- 刚从前台退出的 job
- 空白
- 其他的 job
- 如果 不想让 进程
- 挂起(suspended)
- 而是 希望 进程
后台(background) 继续运行 呢?
- bg 和 bg %1
- 可以 让进程在后台 继续运行
- 这就是
前后台切换- 用 ctrl + z
- 把当前进程切换到后台
- 用 jobs
- 查询当前shell的后台任务
- 用ps
- 查看进程
- 用kill
- 结束进程
- 用 ctrl + c
- 结束当前进程
- 用 ctrl + z
- jobs这个词怎么来的呢?
-
词源字典
- 来自 凯尔特语(gob)、(gop)
- 感觉到 凯尔特人 选择的工作
- 只能是 比较边缘化 的
- 感觉到 凯尔特人 选择的工作
- 来自 凯尔特语(gob)、(gop)
-
中古英语 就变成(jobbe)
- 一堆(lump)
- 一口(mouthful)
- 再演变而成一件工作
- work
- 是长时期稳定的工作
- 全日制的工作
- jobs
- 是临时突发的工作
- 零工
- 偷窃也叫jobs
- 如果两个jobs的话
- 占用内存会变小吗?
- 进程 前后台切换
- ctrl + z 把当前进程 切换到后台 并暂停
jobs查看 所有作业- 用
fg可以把后台进程 再切回前台fg %1可以 把指定的任务 切回前台
- 用
bg可以让进程 在后台运行bg %1可以让指定的任务 回到后台
- 进程查询
ps -elf查看所有进程信息ps -lf查看本终端相关进程信息kill -9 PID给进程发送死亡信号pstree -h可以查看进程树
- 运行多个
python3 show.py的话- 各个进程独立
- 各占内存
- 切进程 很好用
- 不过 运行进程的时候
- 总是 满屏刷时间
- 不过 运行进程的时候
- 可以
固定位置- 刷时间 吗?🤔
- 我们下次再说!👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。






















