欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

[oeasy]python0031_挂起进程_恢复进程_进程切换

最编程 2024-06-13 22:49:11
...

查看进程

回忆上次内容

  • 上次修改了 $PATH 路径
    • 把当前用户shiyanlou的宿主文件夹 ~
      • 添加到 $PATH
    • 这样 sleep.py 就可以被找到
    • 于是就可以被执行了
  • 还可以把配置 $PATH 的脚本
    • 放到 zsh的配置文件(~/.zshrc) 中
    • 配置 ~/.zshrc 就可以
      • 设置 zsh 环境下默认的 $PATH
  • 在当前路径运行 sleep.py
    • python 程序第 1 行
      • 声明打开方式为 python3
    • /usr/bin/python3
      • 从硬盘调用到内存
        • 成为一个进程
          • 不断输出时间
        • ctrl+c结束进程

编辑

  • 我想看到 python3 这个进程
    • 可能吗?????

进行搜索

  • 如果我想查看进程
    • 也需要运行相应的进程查看命令ps
    • 但是如果 sleep.py 持续输出时间
    • 我是没有办法运行ps命令的

编辑

  • 我需要把 sleep.py 转到后台运行
    • 然后查询进程信息

切到后台

  • 切换的方法比较简单
    • ctrl + z
      • 当前进程前台
      • 切换到 后台并暂停
    • 简单来说就是不给他用cpu了
    • suspended(挂起了)

编辑

  • 可以把后台进程切换回前台吗?

前后台切换

  • 所谓把 进程 切换到后台
    • 就是停止不断把时间输出到标准输出流
      • sleep.py这个进程从前台切换到后台并暂停
    • 而且把控制权交回给shell
      • 可以继续输入命令了
  • 那能否反过来?
    • 把进程从 后台(background)
    • 切换到 前台 (foreground)呢?

编辑

  • fg
    • 怎么理解fg呢?

fg

  • foreground的意思就是
    • 离观察者更近的前景

编辑

  • fore的意思是前面的
    • before 在前面的
    • first 最前面的第一个
    • former 曾经的
    • forth 向前
    • forward 向前进
    • far 前进的太多了就远了
    • further 比远还要进一步的
    • 象声词
    • 词根来自*per

*per

  • 象声词
    • 来自于投掷

编辑

  • pro-词根
    • prohibit = pro + forbid 事先禁止
    • provide = pro + view 事先看过
    • promise = pro + mission 事前承诺使命
    • promote 促进
    • profit 利润
    • project 投影
    • process 步骤、进展
  • 在计算机中
    • process也指进程
    • 内存里面的一段空间

foreground

  • foreground(前台)
    • fg 命令把 后台 进程放回 前台
    • 把挂起的进程重新又放到前台
    • cpu又可以给这个进程用了

编辑

  • 但是这个我怎么知道他到后台是否暂停了呢?

挂起

  • 将show_time.py挂起后
    • 重新编辑show_time.py
    • 每行输出一个数字
    • 数字自增
代码语言:javascript
复制
#!/usr/bin/python
i = 0
import time
while True:
    i = i + 1
    print(i, "===", time.asctime())
    time.sleep(1)
  • 保存并退出
  • 恢复刚才放到后台并暂停的show_time.py

编辑

  • 没有在前面加上标号数字
  • 这是为什么呢?????
  • 明明已经保存修改了呀?????

进程

  • 因为我们启动 python3 show_time.py 的时候
    • 是在修改之前
    • 从硬盘读取 show_time.py
      • 放入内存的时候
    • 还没有被修改成
      • 要输出数字编号
    • 这个进程在内存中
      • 始终还是原来调用时的样子
      • 也就是修改前的样子
  • 我们在硬盘上文件的修改
    • 对已经运行了的进程不起作用
  • 那怎么办?

重启进程

  • 先将进程放回前台
    • 再ctrl + c
    • 结束这个进程

编辑

  • 最后重新运行
    • python3 show_time.py
  • 这样硬盘中修改了的python文件
    • 就会被作为新进程重新载入内存
    • 新修改就生效了
  • 这个ctrl + z
  • 真的会暂停进程吗?

暂停

  • 运行程序后
    • 挂起进程
    • 等待一段时间
    • 恢复进程

编辑

  • 还是从5开始
    • 没有在后面偷偷跑
  • 如果我就想让这个进程
    • 在后台偷偷跑呢?

bg

  • 先ctrl + z 挂起进程
    • 然后运行 bg

编辑

  • 程序继续跑起来
  • 而且不断输出到标准输出流
  • 甚至连ctrl + c 都无法结束进程了
  • 这可怎么办呢?

总结

  • 进程前后台切换
    • ctrl + z 把当前进程切换到后台并暂停
    • fg 可以把进程再切回前台
    • bg 可以让进程在后台持续运行
  • 但是问题就是根本停不下来!
  • process 真的就
    • 不断pro - pro - pro
    • 或者说foreword - foreword - foreword 跑起来了

编辑

  • 我想让他后台悄悄跑,可以吗?????
  • 我们下次再说!????
  • 蓝桥->oeasy 教您玩转 python_Python - 蓝桥云课
  • github->GitHub - overmind1980/oeasy-python-tutorial: 良心的 Python 教程,面向零基础初学者简明易懂的 Python3 入门基础课程。在linux+vim生产力环境下,从浅入深,从简单程序学到网络爬虫。可以配合蓝桥云上实验环境操作。
  • gitee->oeasy教您玩转python教程: 面向零基础初学者的简明易懂的 Python3 入门课程,对没有编程经验的同学也非常友好。在vim下从浅入深,逐步学习。从基础入门学习到爬虫。
  • 视频->[oeasy]教您玩转python零基础学python入门教程(合集)_哔哩哔哩_bilibili 作者:oeasy