Mi chiedo se c'è un gancio che potrebbe essere utilizzato in un modulo del kernel Linux che viene generato quando un'applicazione spazio utente/processo viene ucciso?Linux segnale di modulo del kernel sul processo userspace ucciso
risposta
Potresti prima registrarsi per una catena di notifica all'interno del vostro modulo del kernel.
All'interno get_signal_to_deliver
(kernel/signal.c), qualsiasi procedimento che ha appena (essendo questo un termine IMHO relativa) stato ucciso ha la sua PF_SIGNALED bandiera viene impostato. Qui potreste controllare il nome della corrente processo usando il suo campo Tcomm in questo modo:
char tcomm[sizeof(current->comm)];
get_task_comm(tcomm, current);
Se è davvero il processo in questione, si può solo sparare la catena di notifica, che risveglierà il vostro modulo che ha stato in attesa su quella catena.
Grazie! Darò un'occhiata a questo! – ZedTuX
È solo per un processo specifico o tutti i processi? Sei interessato al processo che riceve determinati segnali o il processo sta appena uscendo con grazia? – Tuxdude
Su ** ARM **, '#include' e 'thread_register_notifier()'. Usa 'THREAD_NOTIFY_EXIT'. Vedere: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/include/asm/thread_notify.h –
@Tuxdude: E 'per tutti i processi e per qualsiasi segnale Nel mio caso il mio modulo del kernel sta salvando alcuni dati basati sul PID e deve essere pulito non appena il processo muore. – ZedTuX