Como matar um processo de zumbi em um mac

13

Como matar um processo zumbi ou encontrar o processo pai em um Mac usando o Terminal?

eFrane
fonte
3
@soandos Não é um duplicado, pois esse tópico não é sobre zumbis. Nenhum dos killsinais funciona para zumbis IIRC. Já tive isso antes.
Daniel Beck
Geralmente, pode-se matar zumbis se o processo pai for conhecido, mas isso requer matar também, o que nem sempre é uma escolha agradável. Portanto, eu estou querendo saber se existe outra solução para isso.
eFrane

Respostas:

16

Hack Saw diz:

Infelizmente , parece que matar zumbis é matar o pai , e se o pai for / sbin / launchd, você pode matá-lo apenas com a reinicialização.

Seria uma péssima idéia matar launchd, mas você pode contar para o HUP.

Experimentar sudo kill -s HUP 1

Isso fará com launchdque seja reinicializado sem reiniciar. Isso funcionou para mim no passado (remoção de entradas de zumbi).

sean
fonte
3

Infelizmente , parece que matar zumbis é matar o pai , e se o pai for / sbin / launchd, você pode matá-lo apenas com a reinicialização.

Estou conseguindo que os zumbis usem o Xcode e parem o simulador, e ele está entregando os zumbis ao meu / sbin / launchd pessoal, que não desapareceu quando eu saí.

O comando ps -xo pid, ppid, stat, mostrará seus processos, com o ID pai na segunda coluna.

Serra de corte
fonte
1

processos de zumbis já estão mortos e não podem ser mortos. Eles devem ser removidos da tabela de processos automaticamente quando o processo pai morre.

Eles não diminuem a velocidade da sua máquina e você pode deixá-los lá (são apenas entradas na tabela de processos).

Há um número máximo de processos (você pode verificá-lo sysctl kern.maxproc) e os processos zumbis o reduzirão (conforme são contados).

Se você atingir esse limite, não poderá criar novos processos e será forçado a reiniciar.

Matteo
fonte
"Deve ser removido", mas nem sempre. O Xcode é péssimo em deixar os processos zumbis e eles não são limpos, mesmo que o Xcode morra / seja encerrado / morto.
JRG-Developer
@ JRG-Developer Concordo, mas eles não são um problema. Eles não consomem nenhum recurso.
Matteo
2
Na verdade, eles são um problema quando muitos são criados e o fork não pode iniciar nenhum novo processo e você é forçado a reiniciar.
Adam
2
Eles são um problema quando você deseja reiniciar o processo com falha e usá-lo novamente, mas não pode sem reiniciar.
MarcusJ
4
Quando um aplicativo entra nesse estado, você não pode reiniciá-lo até que a entrada antiga seja limpa. Ele não está usando nenhum recurso, mas a poluição da tabela impede que uma nova instância seja iniciada; portanto, você fica bloqueado até reiniciar.
George