gpt4 book ai didi

python - 如何终止正在运行的 iPython 进程

转载 作者:行者123 更新时间:2023-11-28 21:53:53 25 4
gpt4 key购买 nike

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

最佳答案

ctrl+z can get me out of iPython, but it doesn't seem to kill it, because when I restart iPython I can't re-establish the communication with the equipment. Eventually I had to restart my computer to get the two talking again.

假设您正在使用 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。 (你以后总是可以 fgkill 它(或者 disown 它,或者其他各种东西——参见链接的指南。)

关于python - 如何终止正在运行的 iPython 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25315082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com