Questão Parando dezenas do mesmo processo no Terminal OS X


Sempre que estou testando uma classe python em que estou trabalhando, inicio e reinicio muito o python para atualizar as atualizações que faço no código. Quando fecho a janela do Terminal mais tarde, recebo uma janela que diz que estou prestes a sair de muitas instâncias em execução do Python.

enter image description here

Isso é um bug na parte do terminal, ou eu estou realmente executando todos aqueles? Eu Ctrl-Z fora de cada vez, mas sempre diz

[8]+  Stopped            Python     

onde o 8 é incremental e muitas vezes entra nos anos 20 e 30. Estou fazendo algo estúpido?


1


origem


Oi. Vou iniciá-lo com python e saia com Ctrl-Z. - Artur Sapek
Adicionado como realmente sair do python para minha resposta. - Daniel Beck♦
Agora não cause um problema querido, estou tendo python, python, python, python, ovos, bash, python e python. (cue viking chorus) - stib


Respostas:


Você não é desistir (ou terminar) o programa pressionando Ctrl-Z, você está suspendendo isso. pressione Ctrl-D (fim da transmissão) para sair do Python.

E depois de suspender um processo em execução, você está entrando python ou outro script de inicialização intermediário para "retomar" o programa. Mas isso lança uma instância separada do programa!

Você precisa entrar %n (com n sendo o número exibido, então, por exemplo, %8) para retomar o processo suspenso com o índice de trabalho n ou fg para retomar o processo suspenso mais recentemente.

Se vocês Ctrl-Z fora e fg de volta, o índice também não aumenta.

Você está realmente executando toneladas de separado python instâncias. Listá-los inserindo jobs.

o man página para isso é bash, como seu shell gerencia esses trabalhos.


3



Você também pode consultar o Inspetor para ver a lista de processos para o terminal. Shell> Mostrar Inspetor - Chris Page
Apenas aprendi que você pode limpar todos os trabalhos anteriores com disown -a - Artur Sapek
@artur se você quiser que uma tonelada de processos continue em execução. Você acabou de desassociá-los da sua concha, você não os abandonou. - Daniel Beck♦
Uau tudo bem. Alguma ideia de como re-possuí-los? : P - Artur Sapek
@ArturSapek Se você fez disown em vez de seguir as instruções no meu post, tudo o que você pode razoavelmente fazer é kill eles. ps ax | grep python mostrará seus IDs de processo que você pode usar como argumentos para kill. Ou, se for um computador desktop razoavelmente reiniciado, basta reiniciar. - Daniel Beck♦