Como faço para matar um thread do kernel? E eu realmente quero fazer isso?

8

Como aprendi com esta questão , [bracketed] processos listados pelo comando ps aux são encadeamentos do kernel. Então, existe uma maneira de matá-los na linha de comando? Se não, eu acho que a razão para isso é salvar o usuário de um risco maior de obter um kernel panic, certo?

    
por math 12.12.2011 / 10:12

2 respostas

8

Você não pode matar threads do kernel, ou qualquer processo bloqueado no estado D, porque os sinais só são entregues quando o kernel retorna ao modo de usuário. Além da limitação técnica de entrega de sinal, matar um thread no meio do código do kernel corromperia o sistema, já que o código do kernel pode estar mantendo um recurso importante no momento, como um bloqueio de giro ou mutex, e matá-lo evitaria recursos sejam liberados.

Se você tem um processo que está preso no estado D por um período prolongado de tempo, então você tem um bug do kernel. Consulte o link para dicas sobre como denunciá-lo.

    
por psusi 12.12.2011 / 17:11
2

Encadeamentos de kernel são encadeamentos necessários criados pelo seu Kernel para gerenciar seu sistema.

Nem todos são necessários, mas todos (a maioria) são todos benéficos e, na maioria das vezes, não requerem recursos extras, não há razão para que alguém, em condições normais, pense em matar um encadeamento do Kernel.

O Kernel Linux pode criar uma destruição desses tópicos quando necessário, você não deve se preocupar com eles e matar na maioria das circunstâncias não é algo que você possa fazer.

    
por Bruno Pereira 12.12.2011 / 10:53

Tags