[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
                                                                                                                                                                • 各占内存
                                                                                                                                                                  • 这些进程之间是什么关系呢?🤔

                                                                                                                                                                  编辑

                                                                                                                                                                    相关文章
                                                                                                                                                                    |
                                                                                                                                                                    9天前
                                                                                                                                                                    |
                                                                                                                                                                    监控 Linux 应用服务中间件
                                                                                                                                                                    探索Linux中的`ps`命令:进程监控与分析的利器
                                                                                                                                                                    探索Linux中的`ps`命令:进程监控与分析的利器
                                                                                                                                                                    聊聊python多线程与多进程
                                                                                                                                                                    为什么要使用多进程与多线程呢? 因为我们如果按照流程一步步执行任务实在是太慢了,假如一个任务就是10秒,两个任务就是20秒,那100个任务呢?况且cpu这么贵,时间长了就是浪费生命啊!一个任务比喻成一个人,别个做高铁,你做绿皮火车,可想而知!接下来我们先看个例子:
                                                                                                                                                                    |
                                                                                                                                                                    5天前
                                                                                                                                                                    |
                                                                                                                                                                    监控 Unix 开发者
                                                                                                                                                                    Python 3.9的多进程优化策略具体是如何实现的?
                                                                                                                                                                    【7月更文挑战第2天】Python 3.9的多进程优化策略具体是如何实现的?
                                                                                                                                                                    10 1
                                                                                                                                                                    |
                                                                                                                                                                    5天前
                                                                                                                                                                    |
                                                                                                                                                                    开发者 Python
                                                                                                                                                                    Python 3.9的异步编程和多进程优化有哪些改进?
                                                                                                                                                                    【7月更文挑战第2天】Python 3.9的异步编程和多进程优化有哪些改进?
                                                                                                                                                                    9 1
                                                                                                                                                                    |
                                                                                                                                                                    11天前
                                                                                                                                                                    |
                                                                                                                                                                    开发框架 并行计算 安全
                                                                                                                                                                    Python的GIL限制了CPython在多核下的并行计算,但通过替代解释器(如Jython, IronPython, PyPy)和多进程、异步IO可规避
                                                                                                                                                                    【6月更文挑战第26天】Python的GIL限制了CPython在多核下的并行计算,但通过替代解释器(如Jython, IronPython, PyPy)和多进程、异步IO可规避。Numba、Cython等工具编译优化代码,未来社区可能探索更高级的并发解决方案。尽管GIL仍存在,现有策略已能有效提升并发性能。
                                                                                                                                                                    19 3
                                                                                                                                                                    |
                                                                                                                                                                    13天前
                                                                                                                                                                    |
                                                                                                                                                                    Python
                                                                                                                                                                    Python多进程编程详细剖析
                                                                                                                                                                    Python多进程编程详细剖析
                                                                                                                                                                    16 3
                                                                                                                                                                    |
                                                                                                                                                                    17天前
                                                                                                                                                                    |
                                                                                                                                                                    安全 Java Python
                                                                                                                                                                    GIL是Python解释器的锁,确保单个进程中字节码执行的串行化,以保护内存管理,但限制了多线程并行性。
                                                                                                                                                                    【6月更文挑战第20天】GIL是Python解释器的锁,确保单个进程中字节码执行的串行化,以保护内存管理,但限制了多线程并行性。线程池通过预创建线程池来管理资源,减少线程创建销毁开销,提高效率。示例展示了如何使用Python实现一个简单的线程池,用于执行多个耗时任务。
                                                                                                                                                                    21 6
                                                                                                                                                                    |
                                                                                                                                                                    13天前
                                                                                                                                                                    |
                                                                                                                                                                    算法 API 调度
                                                                                                                                                                    |
                                                                                                                                                                    18天前
                                                                                                                                                                    |
                                                                                                                                                                    Python Windows
                                                                                                                                                                    在 Windows 平台下打包 Python 多进程代码为 exe 文件的问题及解决方案
                                                                                                                                                                    在使用 Python 进行多进程编程时,在 Windows 平台下可能会出现将代码打包为 exe 文件后无法正常运行的问题。这个问题主要是由于在 Windows 下创建新的进程需要复制父进程的内存空间,而 Python 多进程机制需要先完成父进程的初始化阶段后才能启动子进程,所以在这个过程中可能会出现错误。此外,由于没有显式导入 Python 解释器,也会导致 Python 解释器无法正常工作。为了解决这个问题,我们可以使用函数。
                                                                                                                                                                    21 5
                                                                                                                                                                    |
                                                                                                                                                                    18天前
                                                                                                                                                                    |
                                                                                                                                                                    开发框架 安全 .NET
                                                                                                                                                                    【权限提升】Win本地用户&进程注入&令牌窃取&AT&SC&PS服务命令
                                                                                                                                                                    【权限提升】Win本地用户&进程注入&令牌窃取&AT&SC&PS服务命令