Módulo do kernel Linux que mata o processo

0

Estou ansioso para criar meu primeiro driver de dispositivo Linux e seu objetivo é detectar quando uma combinação de teclas é pressionada, como CTRL + ALT e, em seguida, receber um número, como 103, que deve corresponder ao PID de algum processo. Deve então matar este processo.

As perguntas que tenho: Como posso detectar essa combinação de teclas? Como posso matar um processo no espaço do kernel?

Obrigado a todos!

    
por Vinicius 27.11.2016 / 03:39

1 resposta

0

Em vez de começar do zero, sugiro que você modifique ligeiramente as especificações e implemente-as como uma extensão personalizada para o sysreq recurso fornecido pelo driver tty .

Já existe uma funcionalidade semelhante, porém mais severa, Alt PrintScreen i , que mata todos os processos, exceto o init.

Como documentado é o primeiro link que eu postei, você pode registrar suas próprias extensões, fornecendo uma sysrq_key_op estrutura para a função register_sysrq_key .

Dê uma olhada também na função send_sig_all que ela usa para obter um exemplo sobre como matar processos userland do kernel.

Aqui está um exemplo explicando como construir tal extensão.

A parte principal que falta é interceptar a entrada do usuário enquanto o número PID é inserido.

    
por 27.11.2016 / 13:43