【问题标题】:How to kill a running iPython process如何杀死正在运行的 iPython 进程
【发布时间】:2014-08-14 18:26:32
【问题描述】:

我正在使用 iPython 来控制连接到我的 Mac 的其他一些设备。大多数时候它运行良好,但有时我给设备发出了错误的命令,iPython 只是永远挂起,因为它正在等待响应但不会得到响应,所以我需要一种方法来终止 iPython 进程。 ctrl+c 不做任何事情,它只是在屏幕上打印一个^C 字符串。 ctrl+z 可以让我退出 iPython,但它似乎并没有杀死它,因为当我重新启动 iPython 时,我无法重新建立与设备的通信。最终我不得不重新启动我的电脑让两人再次交谈。

【问题讨论】:

  • PS,感谢您让我意识到我在这台计算机上仍然有 IPython 2.1 而不是 2.2。我想我从来没有注意到启动横幅,直到有什么东西迫使我去看它。 :)

标签: python macos io ipython


【解决方案1】:

ctrl+z 可以让我退出 iPython,但它似乎并没有杀死它,因为当我重新启动 iPython 时,我无法重新建立与设备的通信。最后我不得不重新启动我的电脑才能让两人再次交谈。

假设您正在使用bash(OS X 的默认 shell),^Z 会将其转换为暂停的后台作业,您可以使用 job control 将其杀死:

$ ipython
Python 2.7.5 (default, Mar  9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
IPython 2.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]:
[2]+  Stopped                 ipython
$ kill %2

[2]+  Stopped                 ipython
$

[2]+  Terminated: 15          ipython
$

有几点需要注意:

  • 通常后台程序将是作业 1,但您不能依赖它。看[2]+ Stopped;这告诉你这是工作 2,所以你需要kill %2,而不是kill %1。
    • (出于演示目的,我故意将另一个作业放在后台,使其成为2。)
    • 如果您不确定要杀死哪个作业,请使用jobs 命令将它们全部列出。
    • 或者你可以使用%ipython,它指的是第一个名字以ipython开头的作业。
    • 或者%%,意思是“当前”工作——如果你在^Z之后什么都没做,那就是ipython,但是如果你从那以后做了很多其他的事情并且不确定您是否影响了工作控制,请小心。
  • 虽然kill %2 会立即终止任务,但bash 可能要等到下一个提示后才能识别;请注意,在看到Terminated 消息之前,我必须多打一次return。
    • 在某些情况下,您需要使用wait 命令。
  • 如果IPython 挂起非常严重并且无法正确响应信号,请使用kill -9 %2。
  • 如果您误击了^Z 并且不想终止工作,请使用fg %2 而不是kill %2 以返回IPython。
  • 如果您想让IPython 在后台运行而您做其他事情,请使用bg %2 而不是kill %2。 (您以后可以随时 fg 或 kill 使用它(或 disown 它,或其他各种东西 - 请参阅链接指南。)

【讨论】:

    【解决方案2】:

    在终端中使用“top”命令找出进程 ID。它是 PID 列,在 COMMAND 列下,您将看到 IPython 或类似的东西。 他们跑kill -9 PID

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-18
      • 1970-01-01
      • 2020-03-20
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      相关资源
      最近更新 更多