Comecei a usar o Notebook IPython e estou gostando. Às vezes, escrevo um código com erros que exige muitos requisitos de memória ou tem um loop infinito. Acho a opção "interromper kernel" lenta ou não confiável e, às vezes, tenho que reiniciar o kernel, perdendo tudo na memória.
Às vezes também escrevo scripts que fazem com que o OS X fique sem memória e preciso fazer uma reinicialização forçada. Não tenho 100% de certeza, mas quando escrevo bugs como este antes e executo o Python no terminal, geralmente consigo CTRL+ Cmeus scripts.
Estou usando a distribuição Anaconda do notebook IPython com Firefox no Mac OS X.
python
ipython
jupyter-notebook
wwwilliam
fonte
fonte
Respostas:
Posso estar errado, mas tenho quase certeza de que o botão "interromper kernel" apenas envia um sinal SIGINT para o código que você está executando no momento (essa ideia é apoiada pelo comentário de Fernando aqui ), que é a mesma coisa que bater CTRL + C serviria. Alguns processos em python lidam com SIGINTs mais abruptamente do que outros.
Se você precisa desesperadamente interromper algo que está sendo executado no iPython Notebook e iniciou o iPython Notebook de um terminal, pode pressionar CTRL + C duas vezes nesse terminal para interromper todo o servidor do iPython Notebook. Isso interromperá totalmente o iPython Notebook, o que significa que não será possível reiniciar ou salvar seu trabalho, então, obviamente, esta não é uma grande solução (você precisa pressionar CTRL + C duas vezes porque é um recurso de segurança para que as pessoas não fazê-lo por acidente). Em caso de emergência, no entanto, geralmente elimina o processo mais rapidamente do que o botão "interromper kernel".
fonte
Kernel
lista suspensa ou na página do servidor do notebook (oShutdown
botão à direita do nome do notebook ofensivo).jupyter-console
? II / control-c não funciona. E não há outro atalho para reiniciar o kernel.Você pode pressionar
I
duas vezes para interromper o kernel.Isso só funciona se você estiver no modo de comando. Se ainda não estiver ativado, pressione Escpara ativá-lo.
fonte
Aqui estão os atalhos para o Notebook IPython.
Ctrl-m i
interrompe o kernel. (isto é, a única letra i depoisCtrl-m
)De acordo com essa resposta,
I
duas vezes também funciona.fonte
Para adicionar ao acima: Se a interrupção não estiver funcionando, você pode reiniciar o kernel.
Vá para a lista suspensa do kernel >> reiniciar >> reiniciar e limpar a saída. Isso geralmente funciona. Se isso ainda não funcionar, elimine o kernel no terminal (ou gerenciador de tarefas) e reinicie.
Interromper não funciona bem para todos os processos. Eu tenho esse problema especialmente com o kernel R.
fonte
ATUALIZAÇÃO : Transformei minha solução em um script python autônomo.
Essa solução me salvou mais de uma vez. Esperançosamente, outros o acharão útil. Este script python encontrará qualquer kernel jupyter usando mais do que
cpu_threshold
CPU e solicita que o usuário envie umSIGINT
para o kernel (KeyboardInterrupt). Ele continuará sendo enviadoSIGINT
até que o uso da CPU do kernel diminuacpu_threshold
. Se houver vários kernels com comportamento incorreto, ele solicitará que o usuário interrompa cada um deles (ordenados do maior uso da CPU para o menor). Um grande agradecimento vai para gcbeltramini por escrever o código para encontrar o nome de um kernel jupyter usando a API jupyter. Este script foi testado em MACOS com python3 e requer jupyter notebook, requests, json e psutil.Coloque o script em seu diretório inicial e o uso ficará assim:
Código de script abaixo:
fonte