我正在编写一个带有单元格魔法的IPython扩展,它通过pexpect
调用另一个可执行文件。它使这个可执行文件在后台运行,直到内核的生命周期。是否有某个钩子,以便在引发内核中断时发送此子进程Ctrl-C
(例如,IPython Notebook中的“Interrupt Kernel”菜单选项)?
答案 0 :(得分:2)
重新作为答案:
IPython通过发送SIGINT来中断内核,这是在终端中按Ctrl-C时触发的相同信号。因此,只要您想在自己的代码运行时捕获它,就可以捕获KeyboardInterrupt
,如下所示:
p.sendline('some command')
try:
p.expect(processing_finished_mark)
except KeyboardInterrupt:
p.sendintr()