欢迎光临散文网 会员登陆 & 注册

[oeasy]python0033_任务管理_jobs_切换任务_进程树结构_fg

2022-12-26 20:08 作者:oeasy  | 我要投稿

查看进程

回忆上次内容

  • 上次先进程查询

    • ps -elf 查看所有进程信息

    • ps -lf 查看本终端相关进程信息

  • 杀死进程

    • kill -9 PID 给进程发送死亡信号

  • 运行多个 python3 show_time.py 的话

    • 各个进程独立

    • python3 show_time.py 大概 8+M

    • 各占内存

  • 这些进程之间是什么关系呢?🤔

具体查询

  • zsh进程相关的 3 个进程

    • 查询进程的ps进程

    • 输出时间的python程序

    • zsh(shell本身)进程

    • zsh(当前的 shell 环境)

    • /usr/bin/python3 /home/shiyanlou/sleep.py

    • ps -lf

  • 这进程之间有父子关系

父子关系

  • pid 是指进程的 id

    • process id

  • ppid 是指 进程 id

    • parent process id

  • ppidpid 的爸爸

  • pspython3 都是 zsh 的子进程

  • python3 这个进程占内存是 SZ

    • 总共 10+M

    • 4860 个 Page

    • 每个 page 大概 4K

  • 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

  • 词源字典

    • 一堆(lump)

    • 一口(mouthful)

    • 凯尔特语(gob)、(gop)

    • 原意就是口(the mouth)

    • 中古英语就变成(jobbe)

    • 再演变而成一件工作

  • 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 命令查看这棵树

  • 可以看到清晰地父子兄弟关系

总结

  • 进程前后台切换

    • fg %1 可以把指定的进程切回前台

    • ctrl+z把当前进程切换到后台并暂停

    • jobs 查看所有作业

    • fg 可以把进程再切回前台

    • bg 可以让进程在后台运行

  • 进程查询

    • ps -elf 查看所有进程信息

    • ps -lf 查看本终端相关进程信息

    • kill -9 PID 给进程发送死亡信号

    • pstree -h 可以查看进程树

  • 运行多个 python3 sleep.py 的话

    • 各个进程独立

    • python3 sleep.py 大概 7M

    • 各占内存

  • 这个切进程很好用

    • 不过运行进程的时候总是满屏刷时间

  • 可以固定在屏幕的某个位置刷新时间吗?🤔

  • 我们下次再说!*

  • 蓝桥->https://www.lanqiao.cn/courses/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython

  • 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy


[oeasy]python0033_任务管理_jobs_切换任务_进程树结构_fg的评论 (共 条)

分享到微博请遵守国家法律