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

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

 

查看进程

回忆上次内容

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

        编辑

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

          查询进程

            • 搜索 debian进程查询

            编辑

              • 找到具体方法

              进程

                • 具体方法

                编辑

                动手试试

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

                      编辑

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

                            搜索

                            编辑

                              • 搜索结果

                              编辑

                              杀意

                                • 搜到了一个可怕的程序叫做 kill😱
                                  • 他可以给指定 pid 的进程发送信号
                                    • pid的编号可以通过ps -elf的结果中找到
                                    • 找到上一个zsh的pid
                                    • 就是刚刚的281

                                        #杀死进程

                                        kill -9 PID

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

                                              编辑

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

                                                        zsh进程

                                                        #查询进程

                                                        #我们只要和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
                                                                                                                                                                • 各占内存
                                                                                                                                                                  • 这些进程之间是什么关系呢?🤔

                                                                                                                                                                  编辑

                                                                                                                                                                    相关文章
                                                                                                                                                                    |
                                                                                                                                                                    1月前
                                                                                                                                                                    |
                                                                                                                                                                    程序员 开发工具 Python
                                                                                                                                                                    [oeasy]python017_万行代码之梦_vim环境_复制粘贴
                                                                                                                                                                    在这个教程中,作者分享了如何在 Vim 编辑器中快速创建和操作大量代码行。首先,通过 `yy` 复制一行,然后使用 `p` 粘贴来增加代码行数。通过反复粘贴,可以迅速生成多行代码。为了加快操作,可以用 `9999p` 来一次性粘贴9999行。接着,介绍了撤销(`u`)和重做(`ctrl+r`)的操作,以及删除整篇文档的快捷方式。最后,作者提到虽然可以生成一万行代码,但并不建议这样做,因为可能会导致程序崩溃,并提醒大家适度编程。
                                                                                                                                                                    47 2
                                                                                                                                                                    聊聊python多线程与多进程
                                                                                                                                                                    为什么要使用多进程与多线程呢? 因为我们如果按照流程一步步执行任务实在是太慢了,假如一个任务就是10秒,两个任务就是20秒,那100个任务呢?况且cpu这么贵,时间长了就是浪费生命啊!一个任务比喻成一个人,别个做高铁,你做绿皮火车,可想而知!接下来我们先看个例子:
                                                                                                                                                                    |
                                                                                                                                                                    3天前
                                                                                                                                                                    |
                                                                                                                                                                    安全 Java Python
                                                                                                                                                                    GIL是Python解释器的锁,确保单个进程中字节码执行的串行化,以保护内存管理,但限制了多线程并行性。
                                                                                                                                                                    【6月更文挑战第20天】GIL是Python解释器的锁,确保单个进程中字节码执行的串行化,以保护内存管理,但限制了多线程并行性。线程池通过预创建线程池来管理资源,减少线程创建销毁开销,提高效率。示例展示了如何使用Python实现一个简单的线程池,用于执行多个耗时任务。
                                                                                                                                                                    15 6
                                                                                                                                                                    |
                                                                                                                                                                    4天前
                                                                                                                                                                    |
                                                                                                                                                                    Python Windows
                                                                                                                                                                    在 Windows 平台下打包 Python 多进程代码为 exe 文件的问题及解决方案
                                                                                                                                                                    在使用 Python 进行多进程编程时,在 Windows 平台下可能会出现将代码打包为 exe 文件后无法正常运行的问题。这个问题主要是由于在 Windows 下创建新的进程需要复制父进程的内存空间,而 Python 多进程机制需要先完成父进程的初始化阶段后才能启动子进程,所以在这个过程中可能会出现错误。此外,由于没有显式导入 Python 解释器,也会导致 Python 解释器无法正常工作。为了解决这个问题,我们可以使用函数。
                                                                                                                                                                    13 5
                                                                                                                                                                    |
                                                                                                                                                                    6天前
                                                                                                                                                                    |
                                                                                                                                                                    数据挖掘 调度 开发者
                                                                                                                                                                    Python并发编程的艺术:掌握线程、进程与协程的同步技巧
                                                                                                                                                                    并发编程在Python中涵盖线程、进程和协程,用于优化IO操作和响应速度。`threading`模块支持线程,`multiprocessing`处理进程,而`asyncio`则用于协程。线程通过Lock和Condition Objects同步,进程使用Queue和Pipe通信。协程利用异步事件循环避免上下文切换。了解并发模型及同步技术是提升Python应用性能的关键。
                                                                                                                                                                    27 5
                                                                                                                                                                    |
                                                                                                                                                                    5天前
                                                                                                                                                                    |
                                                                                                                                                                    数据采集 自然语言处理 调度
                                                                                                                                                                    【干货】python多进程和多线程谁更快
                                                                                                                                                                    【干货】python多进程和多线程谁更快
                                                                                                                                                                    12 2
                                                                                                                                                                    |
                                                                                                                                                                    8天前
                                                                                                                                                                    |
                                                                                                                                                                    Python
                                                                                                                                                                    Python中的并发编程(6)使用进程
                                                                                                                                                                    Python中的并发编程(6)使用进程
                                                                                                                                                                    |
                                                                                                                                                                    15天前
                                                                                                                                                                    |
                                                                                                                                                                    安全 开发者 Python
                                                                                                                                                                    Python中的多线程与多进程编程
                                                                                                                                                                    Python作为一种广泛使用的编程语言,在处理并发性能时具有独特的优势。本文将深入探讨Python中的多线程与多进程编程技术,分析其原理和应用,帮助读者更好地理解并发编程在Python中的实现与优化。
                                                                                                                                                                    |
                                                                                                                                                                    18天前
                                                                                                                                                                    |
                                                                                                                                                                    计算机视觉 Python
                                                                                                                                                                    Python 多进程以及进程共享参数
                                                                                                                                                                    这段时间在做一款游戏的挂机软件,我发现进入游戏后的逻辑和判断人物死亡的逻辑需要同时进行(因为不知道什么时候就暴毙了),以前我习惯用线程来进行同步,但是我发现由于我的代码中的逻辑比较复杂,且有多个嵌套的无限循环会导致线程阻塞,所以我决定用进程的方式来实现同步运行。
                                                                                                                                                                    |
                                                                                                                                                                    17天前
                                                                                                                                                                    |
                                                                                                                                                                    监控 Python
                                                                                                                                                                    python对于守护进程join , 以及daemon 的使用条件
                                                                                                                                                                    python对于守护进程join , 以及daemon 的使用条件