O processo de atividade não termina?

2

insira a descrição da imagem aquiEstou usando um Mac e uso o Macvim para programação. Se meu programa entrar em um loop infinito e eu tiver que sair do Macvim e reiniciá-lo devido a isso, o programa será reiniciado, mas o processo do programa continuará em execução. Eu percebi isso quando eu abri meu monitor de atividade e ver "programa foo" ainda está sendo executado em cerca de 99% de uso da CPU! Eu posso facilmente desligar o processo do monitor de atividade, mas existe uma maneira de evitar isso? Agradecemos antecipadamente por qualquer sugestão. Teste é o arquivo no qual o loop entrou. Eu criei para mostrar um exemplo.

Gmenfan83
fonte
O processo do programa em que você estava trabalhando não está desistindo corretamente? ou Um processo macvim não está saindo corretamente? Mais específicos? Se é o programa que você está escrevendo, conserte seu código talvez, para não causar um loop infinito?
TheIrishGuy
Obrigado. Eu não estou preocupado com o loop, eu entendo a fixação de um loop infinito. Meu problema é o processo para o programa continua a mostrar no monitor de atividade, mesmo depois de eu bastante Macvim devido a um loop infinito.
Gmenfan83
Mas quando você diz "o programa", é "o programa" MacVim ou o programa que você está escrevendo?
Daniel
Se o programa que eu estou codificando entrar em um loop infinito devido a um erro, eu devo sair do Macvim. Mesmo depois que eu saio do Macvim, o programa que entrou no loop ainda aparece no monitor Acitvity e ocupa 99% da CPU. Eu sei que a solução fácil é não causar um loop infinito, mas eles acontecem. Posso desligar o processo do programa através do monitor de atividades, mas gostaria que o processo terminasse assim que eu saísse do Macvim. Fazendo sentido?
Gmenfan83
Quando digo "o programa", é o programa que estou escrevendo, obviamente em Macvim. MAS o monitor de atividades mostrará apenas o nome do arquivo e não o Macvim. Exemplo O monitor de atividades diria "foo.cpp" 99% da CPU.
Gmenfan83

Respostas:

5

MacVim forks (gera um novo processo) para iniciar processos externos, mas aguarda que o processo externo retorne antes de retomar a execução. Assim, matar o MacVim simplesmente desconecta o processo filho (seu programa) do MacVim e o anexa ao processo principal executado, em essência, o OS X como um todo.

Você tem que sair, ou Force Quit, seu programa explicitamente para matá-lo.

Também é muito provável que, se você matar seu programa, e NÃO MacVim, possa continuar usando o MacVim sem problemas.

Jason Salaz
fonte
Você saberia qual comando mataria o programa sem sair do Macvim? Eu só posso encontrar documentação sobre como salvar e sair, etc?
Gmenfan83
1
Se pressionar control cnão funcionar, você pode selecionar e matar seu aplicativo através do Activity Monitor primeiro e, em seguida, o MacVim deve começar a funcionar novamente.
Jason Salaz
1
Do terminal ps auxr | grep test | head -1 | awk {'print$2'} | xargs -t kill -9onde teste é o nome do seu aplicativo. Não há necessidade de Activity Monitor.
afragen
3
@afragen Farei você melhor:, killall -s KILL testonde test é o nome da sua aplicação.
Jason Salaz
@JasonSalaz a menos que você tenha outros processos com esse nome ...
Daniel