【问题标题】:How to stop a python script launching many subprocesses from terminal如何停止从终端启动许多子进程的python脚本
【发布时间】:2017-12-12 04:43:45
【问题描述】:

我有一个 python 脚本,它在循环中启动一系列子进程:

for c in cmds:
  subprocess.call(c, shell=True)

当脚本在终端中运行时,我尝试使用 Ctrl+CCtrl+D 来停止它kbd>,但是,它将继续启动下一个子进程。如何一次终止整个 python 脚本?

【问题讨论】:

  • 我认为这是您的操作系统和开发环境(如果有)的功能。你用什么做平台?
  • 你试过kill -9吗?
  • Linux (CentOS)。是的,最后我用kill -9杀了它。
  • ctrl + z 通常也适用于此。
  • 请注意,ctrl + z(大多数 Linux 风格)将进程置于后台。该进程将继续创建子进程。可能不是 OP 需要的。

标签: python terminal subprocess


【解决方案1】:

可能发生的情况是 ctrl-C 被您的子进程拦截(在同一终端上运行)并且永远不会访问您的 Python 脚本。你可以做的是检查subprocess.call的返回值,看看子进程是否被信号杀死,并决定是否要停止提交新进程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多