[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程

查看进程

回忆上次内容

  • 上次先ctrl + z 挂起进程

    • 然后运行 bg

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第1张图片

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

查询进程

  • 搜索 debian进程查询

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第2张图片

  • 找到具体方法

进程

  • 具体方法

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第3张图片

动手试试

  • 新开一个终端

    • 运行ps -elf

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第4张图片

  • 查看到两条进程信息

    • 看起来上一个zsh就是pid为281的进程
    • 记住281这个pid
  • 现在我想把这个278进程干掉怎么办?
  • 搜索一下

搜索

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第5张图片

  • 搜索结果

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第6张图片

杀意

  • 搜到了一个可怕的程序叫做 kill

    • 他可以给指定 pid 的进程发送信号

      • pid的编号可以通过ps -elf的结果中找到
      • 找到上一个zsh的pid
      • 就是刚刚的281
#杀死进程
kill -9 PID
  • -9 就是死亡信号

    • 发过去之后那个进程就要自尽
    • 没有任何进程愿意接受着这个信号
    • 君要臣死,臣不得不死
    • 权限对进程是多么重要啊
    • 但是接到了就要执行
    • 阿啊阿啊阿啊·~

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第7张图片

  • 真的把之前的那个zsh进程干掉了

    • 窗口都消失了
  • 但是看到的进程太多了

    • 但我只想要和当前zsh有关的进程

zsh进程

#查询进程
#我们只要和zsh这个进程相关的
#把e去掉
ps -lf
  • 这样只出现本shell相关的进程

  • kill起来比较方便

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第8张图片

  • 好像还挺好玩

    • 再建几个进程放后台
    • 试着kill一下

启动更多新进程

  • 先启动更多的报时程序

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第9张图片

  • 再试着一个个地kill
  • 如何理解suspend呢?

suspend词源

  • suspend = sus + pend

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第10张图片

  • sus来自于sub 下面

    • sustain

      • 支撑;承受(sus+tain握住→在下面握住→支撑)
    • suspect

      • 怀疑 (sus+pect看→在下面看一看→怀疑)
    • susceptive 有接受力的;敏感的(sus+cept拿+ive→有拿下的能力→有接受力的)
  • suspend是什么意思呢?

-pend

  • pend 来自于 *(s)pen-

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第11张图片

  • *(s)pen- 意思为悬挂带着

    • depend

      • de-, 向下,离开 -pend, 悬挂
      • 即悬挂点
      • 引申义依靠
      • denpendent
      • independent
    • append

      • 词根词缀: ap- 来 , 临近
      • -pend- 悬挂
      • 垂→依附
    • expend

      • ex- 出 , 向外 + -pend- 支付
      • spend
  • suspend

    • 挂起
    • 吊,悬挂;推迟,暂停
    • 有啥关系?

suspend

  • 古代萨克逊人使用的刀叫做撒克逊刀

    • 刃朝上抽出来就是要战斗

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第12张图片

  • 挂起来

    • sustain 了
    • 就是不战斗了
    • 推迟战斗了
    • 暂停了
  • 程序先不运行

    • 就是挂起了
  • 先运行再挂起还是有点麻烦
  • 可以直接后台运行但是不输出到屏幕吗?

搜索

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第13张图片

  • 搜索结果

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第14张图片

查询手册

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第15张图片

后台运行不输出

  • 搜索后得到答案

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第16张图片

  • nohup python -u show_time.py > test.log 2>&1 &

    • 0 – stdin (standard input,标准输入)
    • 1 – stdout (standard output,标准输出)
    • 2 – stderr (standard error,标准错误输出)
    • 2>&1 解释:

      • 将标准错误 2 重定向到标准输出 &1
      • 标准输出 &1 再被重定向输入到 test.log 文件中
    • 最后的&表示后台运行
  • 可以在后台再开几个进程吗?

后台进程

  • 方向键↑可以找到上一条命令

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第17张图片

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

    • 可以查询得到吗?

总结

  • 进程查询

    • ps -elf 查看所有进程信息
    • ps -lf 查看本终端相关进程信息
  • 杀死进程

    • kill -9 PID 给进程发送死亡信号
  • 运行多个 python3 show_time.py 的话

    • 各个进程独立
    • python3 show_time.py 大概 8+M
    • 各占内存
  • 这些进程之间是什么关系呢?

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程_第18张图片

  • 我们下次再说!
  • 蓝桥->https://www.lanqiao.cn/course...
  • github->https://github.com/overmind19...
  • gitee->https://gitee.com/overmind198...
  • 视频->https://www.bilibili.com/vide... 作者:oeasy

你可能感兴趣的:(python,python)