【问题标题】:Terminate Running Python Apps终止正在运行的 Python 应用程序
【发布时间】:2016-02-10 04:29:21
【问题描述】:

作为大学项目的一部分,我有一个运行 Raspbian 的 Raspberry Pi 来控制家庭自动化系统。为了控制这一点,我使用 ASP.NET Web 应用程序在 Pi 上触发 SSH 命令以启动各种 Python 应用程序。我需要一种在启动新应用之前通过 SSH 终止另一个应用的方法。

例如:

a.py 和 b.py 正在运行

用户从网络应用中选择 c.py

a.py 必须在启动 c.py 之前停止,让 b.py 和 c.py 运行。

谢谢

杰克

【问题讨论】:

    标签: python linux ssh


    【解决方案1】:

    如果你想杀死所有正在运行的python实例:

    $ kill `pidof python`
    

    如果你想杀死特定 python 脚本的每个正在运行的实例:

    $ kill `pidof -x myscript.py`
    or
    $ pkill myscript.py
    or
    $ killall glances
    

    通常不建议将 SIGKILL 发送到正在运行的程序 (kill -9)。除非程序被冻结,否则 SIGTERM 通常就足够了。以上所有命令都会发送 SIGTERM。

    【讨论】:

      【解决方案2】:

      使用命令找到你的python脚本的PID(进程ID)(应该是第二列)

      ps -ef | grep python
      kill <PID found previously>
      kill -9 <PID found previously>
      

      如果程序仍在运行,则表示您使用了错误的 PID 没有什么可以阻止 kill -9 命令:-)

      【讨论】:

      • 谢谢,PID 每次都保持不变吗?如果没有,以编程方式执行此操作的最佳方法是什么?
      • @JoranBeasley 我编辑了问题的标题以更好地反映我的需求。该命令看起来会结束每个运行的 python 脚本。
      猜你喜欢
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多