我正在使用iPython来控制连接到Mac的其他设备。大部分时间它运行正常,但有时我给设备发出了错误的命令,iPython只是永远挂起,因为它正在等待响应但不会得到一个,所以我需要一种方法来杀死iPython进程。 ctrl+c
没有做任何事情,只是在屏幕上打印一个^C
字符串。 ctrl+z
可以让我退出iPython,但它似乎没有杀死它,因为当我重新启动iPython时,我无法重新建立与设备的通信。最终我不得不重新启动计算机让两个人再次交谈。
答案 0 :(得分:5)
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
$
有几件事需要注意:
[2]+ Stopped
;这告诉你它是工作2,所以你需要kill %2
,而不是kill %1
。
2
。)jobs
命令将它们全部列出。%ipython
,它指的是名称以ipython
开头的第一个作业。%%
,这意味着“当前”工作 - 如果您自^Z
以来没有做过任何事情,那将是ipython
,但如果您已经完成了从那以后一堆其他的东西,并不确定你是否影响了工作控制,小心。kill %2
会立即终止任务,但bash
可能无法识别到下一个提示;请注意,在看到return
消息之前,我必须再次点击Terminated
。
wait
命令。IPython
严重悬挂并且没有正确响应信号,请使用kill -9 %2
。^Z
并且不想要删除该作业,请使用fg %2
代替kill %2
重新使用IPython
。IPython
在后台运行,请使用bg %2
代替kill %2
。 (您以后可以随时fg
或kill
(或disown
或其他各种事项 - 请参阅相关指南。)答案 1 :(得分:0)
在终端中使用“top”命令查找进程ID。它是PID列,在COMMAND列下,您将看到IPython或类似的东西。
他们运行kill -9 PID