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

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

 

查看进程

回忆上次内容

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

                                        image.gif编辑

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

                                              进行搜索

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

                                                    image.gif编辑

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

                                                          切到后台

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

                                                                    image.gif编辑

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

                                                                      前后台切换

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

                                                                                        image.gif编辑

                                                                                          • fg
                                                                                            • 怎么理解fg呢?

                                                                                              fg

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

                                                                                                    image.gif编辑

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

                                                                                                          *per

                                                                                                            • 象声词
                                                                                                              • 来自于投掷

                                                                                                                image.gif编辑

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

                                                                                                                          foreground

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

                                                                                                                                image.gif编辑

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

                                                                                                                                  挂起

                                                                                                                                    • 将show_time.py挂起后
                                                                                                                                      • 重新编辑show_time.py
                                                                                                                                      • 每行输出一个数字
                                                                                                                                      • 数字自增

                                                                                                                                        #!/usr/bin/python

                                                                                                                                        i = 0

                                                                                                                                        import time

                                                                                                                                        while True:

                                                                                                                                           i = i + 1

                                                                                                                                           print(i, "===", time.asctime())

                                                                                                                                           time.sleep(1)

                                                                                                                                          • 保存并退出
                                                                                                                                          • 恢复刚才放到后台并暂停的show_time.py

                                                                                                                                          image.gif编辑

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

                                                                                                                                            进程

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

                                                                                                                                                                  重启进程

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

                                                                                                                                                                        image.gif编辑

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

                                                                                                                                                                                  暂停

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

                                                                                                                                                                                        image.gif编辑

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

                                                                                                                                                                                                  bg

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

                                                                                                                                                                                                        image.gif编辑

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

                                                                                                                                                                                                          总结

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

                                                                                                                                                                                                                    image.gif编辑

                                                                                                                                                                                                                      相关文章
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      22天前
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      安全 Java 数据处理
                                                                                                                                                                                                                      Python网络编程基础(Socket编程)多线程/多进程服务器编程
                                                                                                                                                                                                                      【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      2月前
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      并行计算 安全 Unix
                                                                                                                                                                                                                      Python教程第8章 | 线程与进程
                                                                                                                                                                                                                      本章主要讲解了线程与进程的概念,多线程的运用以及Python进程的相关案例学习
                                                                                                                                                                                                                      37 0
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      2月前
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      分布式计算 并行计算 Java
                                                                                                                                                                                                                      浅析Python自带的线程池和进程池
                                                                                                                                                                                                                      浅析Python自带的线程池和进程池
                                                                                                                                                                                                                      103 0
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      2月前
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      缓存 负载均衡 安全
                                                                                                                                                                                                                      在Python中,如何使用多线程或多进程来提高程序的性能?
                                                                                                                                                                                                                      【2月更文挑战第17天】【2月更文挑战第50篇】在Python中,如何使用多线程或多进程来提高程序的性能?
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      2月前
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      安全 Python
                                                                                                                                                                                                                      Python中的并发编程:多线程与多进程技术探究
                                                                                                                                                                                                                      本文将深入探讨Python中的并发编程技术,重点介绍多线程和多进程两种并发处理方式的原理、应用场景及优缺点,并结合实例分析如何在Python中实现并发编程,以提高程序的性能和效率。
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      1月前
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      数据采集 数据库 C++
                                                                                                                                                                                                                      python并发编程:并发编程中是选择多线程呢?还是多进程呢?还是多协程呢?
                                                                                                                                                                                                                      python并发编程:并发编程中是选择多线程呢?还是多进程呢?还是多协程呢?
                                                                                                                                                                                                                      20 0
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      4天前
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      消息中间件 Linux 调度
                                                                                                                                                                                                                      Python的进程锁,进程队列
                                                                                                                                                                                                                      Python的进程锁,进程队列
                                                                                                                                                                                                                      118 3
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      4天前
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      数据采集 监控 调度
                                                                                                                                                                                                                      Python的进程,以及进程同步,守护进程详细解读
                                                                                                                                                                                                                      Python的进程,以及进程同步,守护进程详细解读
                                                                                                                                                                                                                      133 4
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      9天前
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      Java 数据库连接 数据处理
                                                                                                                                                                                                                      Python从入门到精通:3.1.2多线程与多进程编程
                                                                                                                                                                                                                      Python从入门到精通:3.1.2多线程与多进程编程
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      9天前
                                                                                                                                                                                                                      |
                                                                                                                                                                                                                      消息中间件 安全 调度
                                                                                                                                                                                                                      Python从入门到精通:3.1.1多线程与多进程——进程和线程的概念
                                                                                                                                                                                                                      Python从入门到精通:3.1.1多线程与多进程——进程和线程的概念