Termina il processo dal kernel


3

Sto cercando di usare killma all'interno del kernel Linux, quindi l'ho usato sys_killma questo non funziona per me, mi sta dando un errore, quindi chiunque sa cosa devo usare per terminare il processo all'interno del kernel, non nel comando utente

quindi la mia domanda è diversa da come potrei usare la chiamata di sistema dal kernel

a quello che mi ha già chiesto di chiarire .. sì, sto cercando di uccidere un processo quando Linux ha ricevuto un pacchetto dalla rete, quindi dopo 1000 pacchetti Linux deve uccidere il numero di processo 17722 Ho usato kill, kill_sys ma non funziona perché sono a livello di kernel e non a livello di utente


1
Si prega di modificare la tua domanda e chiarire ciò che si sta cercando di fare. Stai scrivendo un programma? Cosa vuoi uccidere esattamente? Cosa intendi con "dentro il kernel"?
terdon

1
Ho un po 'di punteggiatura qui se ne vuoi. In particolare alcuni punti ...e virgole ,,,. Si prega di modificare la tua domanda per renderlo più facile da capire (e leggere).
roaima,

Risposte:


5

sys_killè una chiamata di sistema. Le chiamate di sistema sono per le app di userspace da chiamare nel kernel.

Se vuoi killun processo all'interno del kernel, dai un'occhiata kill_proc_info.


kill_proc_info () fa il lavoro per me (non sono un hacker di kernel molto esperto, quindi non posso commentare se è la giusta funzione da usare). Tuttavia, fai attenzione alle seguenti insidie: richiede un pid virtuale, non un pid globale. Non troverai quel bug prima di usare il tuo primo spazio dei nomi pid (container).
Uwe Geuder,

0

non è raro (o almeno non sconosciuto) che il kernel effettui chiamate di sistema ... ma prima devi fare un po 'di hacker in modo da poter passare gli indirizzi virtuali del kernel come argomenti (come minimo - ci sono altri ostacoli e trappole, tutto ciò lo rende qualcosa che dovresti evitare di fare se puoi ... ad esempio non è una buona idea farlo da un gestore di interrupt). questo articolo del blog fa un ragionevole lavoro di spiegarlo.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.