前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程

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

原创
作者头像
oeasy
发布2022-12-24 22:07:43
8870
发布2022-12-24 22:07:43
举报
文章被收录于专栏:oeasy教您玩转linux、python

查看进程

回忆上次内容

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

编辑

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

查询进程

  • 搜索 debian进程查询

编辑

  • 找到具体方法

进程

  • 具体方法

编辑

动手试试

  • 新开一个终端
    • 运行ps -elf

编辑

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

搜索

编辑

  • 搜索结果

编辑

杀意

  • 搜到了一个可怕的程序叫做 kill😱
    • 他可以给指定 pid 的进程发送信号
      • pid的编号可以通过ps -elf的结果中找到
      • 找到上一个zsh的pid
      • 就是刚刚的281
代码语言:javascript
复制
#杀死进程
kill -9 PID
  • -9 就是死亡信号
    • 发过去之后那个进程就要自尽 🥵
    • 没有任何进程愿意接受着这个信号
    • 君要臣死,臣不得不死
    • 权限对进程是多么重要啊
    • 但是接到了就要执行
    • 阿啊阿啊阿啊·~ 💀

编辑

  • 真的把之前的那个zsh进程干掉了
    • 窗口都消失了
  • 但是看到的进程太多了
    • 但我只想要和当前zsh有关的进程

zsh进程

代码语言:javascript
复制
#查询进程
#我们只要和zsh这个进程相关的
#把e去掉
ps -lf
  • 这样只出现本shell相关的进程

编辑

  • kill起来比较方便

编辑

  • 好像还挺好玩
    • 再建几个进程放后台
    • 试着kill一下

启动更多新进程

  • 先启动更多的报时程序

编辑

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

suspend词源

  • suspend = sus + pend

编辑

  • sus来自于sub 下面
    • sustain
      • 支撑;承受(sus+tain握住→在下面握住→支撑)
    • suspect
      • 怀疑 (sus+pect看→在下面看一看→怀疑)
    • susceptive 有接受力的;敏感的(sus+cept拿+ive→有拿下的能力→有接受力的)
  • suspend是什么意思呢?

-pend

  • pend 来自于 *(s)pen-

编辑

  • *(s)pen- 意思为悬挂带着
    • depend
      • de-, 向下,离开 -pend, 悬挂
      • 即悬挂点
      • 引申义依靠
      • denpendent
      • independent
    • append
      • 词根词缀: ap- 来 , 临近
      • -pend- 悬挂
      • 垂→依附
    • expend
      • ex- 出 , 向外 + -pend- 支付
      • spend
  • suspend
    • 挂起
    • 吊,悬挂;推迟,暂停
    • 有啥关系?

suspend

  • 古代萨克逊人使用的刀叫做撒克逊刀
    • 刃朝上抽出来就是要战斗

编辑

  • 挂起来
    • sustain 了
    • 就是不战斗了
    • 推迟战斗了
    • 暂停了
  • 程序先不运行
    • 就是挂起了
  • 先运行再挂起还是有点麻烦
  • 可以直接后台运行但是不输出到屏幕吗?

搜索

编辑

  • 搜索结果

编辑

查询手册

编辑

后台运行不输出

  • 搜索后得到答案

编辑

  • 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 文件中
    • 最后的&表示后台运行
  • 可以在后台再开几个进程吗?

后台进程

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

编辑

  • 这些进程之间是什么关系呢
    • 可以查询得到吗?😜

总结

  • 进程查询
    • ps -elf 查看所有进程信息
    • ps -lf 查看本终端相关进程信息
  • 杀死进程
    • kill -9 PID 给进程发送死亡信号
  • 运行多个 python3 show_time.py 的话
    • 各个进程独立
    • python3 show_time.py 大概 8+M
    • 各占内存
  • 这些进程之间是什么关系呢?🤔

编辑

  • 我们下次再说!👋作者:oeasy

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 查看进程
    • 回忆上次内容
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档