关于python:oeasypython0033任务管理jobs切换任务进程树结构fg

34次阅读

共计 1694 个字符,预计需要花费 5 分钟才能阅读完成。

查看过程

回顾上次内容

  • 上次先过程查问

    • 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
  • ppidpid 的爸爸
  • pspython3 都是 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
    • 各占内存
  • 这个切过程很好用

    • 不过运行过程的时候总是满屏刷工夫
  • 能够固定在屏幕的某个地位刷新工夫吗?🤔
  • 咱们下次再说!👋
  • 蓝桥 ->https://www.lanqiao.cn/course…
  • github->https://github.com/overmind19…
  • gitee->https://gitee.com/overmind198…
  • 视频 ->https://www.bilibili.com/vide… 作者:oeasy

正文完
 0