Comportamento killall inesperado

1

Do meu entendimento de killall name é que ele procura todos os processos cujo nome é name. Então killall killall deve procurar e se matar, então eu não esperava nenhuma saída. Então estou curioso:
Por que parece assim:

nathan:~ max$ killall killall
No matching processes belonging to you were found
nathan:~ max$ 

Estou no OS X atual.

    
por Max Ried 08.03.2012 / 20:49

1 resposta

5

Na página de manual do Linux killall não se matará.

Edit: Eu vejo isso não é mencionado na página de manual do OSX, mas provavelmente tem o mesmo comportamento. A razão é que você pode usar regexps, então é totalmente possível que você acidentalmente tente matar killall quando especificar um regex, e isso tornaria killall menos útil.

Editar 2: Eu posso estar muito errado sobre isso, mas o OSX não é chamado de "Darwin" - e não é esta o código-fonte para OSX killall then?

Estou um pouco enferrujado no meu C, mas o seguinte:

  if (thispid == mypid)
        continue;

no que parece ser um loop iterando através de todos os processos ativos parece ser uma verificação específica para comparar o processo atual que está tentando matar contra o seu próprio PID, então ele vai pular sozinho.

Acho que você poderia fazer o download dessa fonte, remover essas duas linhas e recompilá-lo se realmente quisesse que um killall se matasse.

    
por 08.03.2012 / 20:54

Tags