查看进程

回忆上次内容

  • 上次修改了 $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
    • 每行输出一个数字
    • 数字自增
#!/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]python0031_挂起进程_恢复进程_进程切换的更多相关文章

  1. Ring3挂起进程,跟恢复进程.

    目录 Ring3挂起进程,跟恢复进程. 一丶简介 二丶代码 Ring3挂起进程,跟恢复进程. 一丶简介 有时候我们做对抗的时候可能会遇到.一个进程常常操作我们.但是我们 可以通过挂起进程来挂起它让它无 ...

  2. python2.0 s12 day8 _ python线程&python进程

    1.进程.与线程区别2.cpu运行原理3.python GIL全局解释器锁4.线程 1.语法 2.join 3.线程锁之Lock\Rlock\信号量 4.将线程变为守护进程 5.Event事件 6.q ...

  3. 关于Windows文件读写_暗涌_新浪博客

    关于Windows文件读写_暗涌_新浪博客     这几天在研究怎么才能加快windows文件读写速度,搜了很多文章,MSDN也看了不少.稍微给大家分享一下.     限制windows文件读写速度的 ...

  4. python基础-12 多线程queue 线程交互event 线程锁 自定义线程池 进程 进程锁 进程池 进程交互数据资源共享

    Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就比别人NB. 我们先了解一下什么是进程和线程. 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CP ...

  5. 安装_oracle11G_客户端_服务端_链接_oracle

    在开始之前呢,有一些注细节需要注意,oracle11G_客户端_和_服务端, 分为两种   一种是  开发者使用    一种是  BDA  自己使用(同时也需要根据自己 PC 的系统来做_win7_与 ...

  6. Python之进程 3 - 进程池和multiprocess.Poll

    一.为什么要有进程池? 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务.那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗 ...

  7. cadence spb 16.5 破解过程实例和使用感受_赤松子耶_新浪博客

    cadence spb 16.5 破解过程实例和使用感受_赤松子耶_新浪博客 Cadence Allegro16.5详细安装具体的步骤 1.下载SPB16.5下来后,点setup.exe,先安装第一项 ...

  8. 杀死Linux中的defunct进程(僵尸进程)的方法指南

    杀死Linux中的defunct进程(僵尸进程)的方法指南_LINUX_操作系统_脚本之家https://www.jb51.net/LINUXjishu/457748.html 这样能看到僵尸进程.

  9. 9-1进程,进程池和socketserver

    一 进程: # 什么是进程 : 运行中的程序,计算机中最小的资源分配单位# 程序开始执行就会产生一个主进程# python中主进程里面启动一个进程 —— 子进程# 同时主进程也被称为父进程# 父子进程 ...

  10. Update(Stage4):Spark原理_运行过程_高级特性

    如何判断宽窄依赖: =================================== 6. Spark 底层逻辑 导读 从部署图了解 Spark 部署了什么, 有什么组件运行在集群中 通过对 W ...

随机推荐

  1. Google出品的NotebookLM 人工智能笔记本,一款基于RAG的personalized AI产品

    Google推出了实验性的NotebookLM产品,一款基于RAG的个性化AI助手产品,基于用户提供的可信信息,通过RAG,帮助用户洞察和学习参考内容,然后借助AI整理笔记,转换为用户最终需要的大纲. ...

  2. docker应用基础

    docker相关 镜像 镜像仓库使用的Docker默认的Docker Hub. 搜索仓库的镜像 docker search 默认按评分排序,offical [ok] 表示是官方镜像 $ docker ...

  3. dotnet 命令行工具解决方案 PomeloCli

    PomeloCli 是什么 中文版 English version 我们已经有相当多的命令行工具实现或解析类库,PomeloCli 并不是替代版本,它基于 Nate McMaster 的杰出工作 Co ...

  4. iOS使用SignalR客户端代码典范-桥接web SignalR 客户端库

    一.SignalR介绍 SignalR是微软基于.Net提供的一个开源实时Web RPC库,可以用在web实时通信的需求上面,比如聊天,web数据更新 SignalR的接口使用十分简单 由于最近的一个 ...

  5. 8.4考试总结(NOIP模拟30)[毛一琛·毛二琛·毛三琛]

    最有名的莫过于想死一次吗. 前言 至今都不知道题目是个啥... T1 毛一琛 解题思路 \(\mathcal{Meet\;In\;The\;Middle}\) 其实就是一个爆搜... 把整个区间分为两 ...

  6. 安装图形化界面时候报错 Transaction check error: file /boot/efi/EFI/centos from install of fwupdate-efi-12-5.el7.centos.x86_64 conflicts with file from package grub2-common-1:2.02-0.65.el7.centos.2.noarch

    报错 Transaction check error:file /boot/efi/EFI/centos from install of fwupdate-efi-12-5.el7.centos.x8 ...

  7. 使用 ClickHouse 做日志分析

    原作:Monika Singh & Pradeep Chhetri 这是我们在 Monitorama 2022 上发表的演讲的改编稿.您可以在此处找到包含演讲者笔记的幻灯片和此处的视频. 当 ...

  8. idea 中的 jrebel

    1.打开idea设置 ,下载 jrebel 2搜索下载jrebel 3.重启之后,在右下角有个弹窗,这时候选择enable,然后右边的侧边栏工具会弹出一个界面,总共应该有4步,第一步是展开的,点击蓝色 ...

  9. 基于 Swagger 增强 UI FytApi.MUI

    FytApi.MUI 介绍 基于swagger的轻量级,注入化的api-ui组件 支持netcore 3.1/5.0/6.0 特点 零浸入.轻量.简单.好看.好用 可配置权限认证以及Header,支持 ...

  10. C#.Net筑基-集合知识全解

    01.集合基础知识 .Net 中提供了一系列的管理对象集合的类型,数组.可变列表.字典等.从类型安全上集合分为两类,泛型集合 和 非泛型集合,传统的非泛型集合存储为Object,需要类型转.而泛型集合 ...