无法杀死ipython进程
我在Windows上使用iPython。 我目前正在制作一个可以卡在套接字接收的python脚本(我还没有在这个部分实现鲁棒性)。无法杀死ipython进程
我想每一个平常的杀死进程组合键(至少我知道的),但iPython卡住了,我必须关闭并重新打开它。 我试过Ctrl + C,Ctrl + Z,Ctrl + D,我不知道是否还有其他组合。
有没有人经历过这种问题?
谢谢
亚历山大
一些阻塞操作(与操作系统)不能正常中断(见cannot interrupt lock.acquire() whereas I can interrupt time.sleep())
我提出了一些办法,这就需要你知道发生了什么事情在你的代码。
- 运行在它
- 代码中的线程上运行的主用一个try/except块为
KeyboardInterrupt
- 异常将释放/关闭套接字,并允许线程完成的处理程序。
为了简单起见,我创建了一个使用线程锁的示例。您可以将其适配到套接字或任何阻止资源:
import threading
import time,sys
l = threading.Lock()
def run():
global l
l.acquire()
l.acquire()
t = threading.Thread(target=run)
t.start()
while True:
try:
time.sleep(1)
except KeyboardInterrupt:
print("quitting")
l.release() # now thread can exit safely
break
试试下面的命令:
exit
或尝试重新启动内核。
是什么?但如果OP不能键入CTRL,他/她怎么能输入'exit'。另外,这是明显错误的。它不起作用 –
您是否尝试重新启动内核? –
[你有试过关掉它吗?](https://www.youtube.com/results?search_query=it+crowd+have+you+tried+turning+it+off+and+on+again ) –
Ctrl + Alt + Suppr? – CCH
_that_超级烦人。我通过在一个线程中执行套接字事情来解决这个问题,并且在main中循环了一个time.sleep(),所以CTRL + C可以工作。 –
我可否知道您使用的是哪个IDE? –