2013-03-02 2 views
5

사용자 공간 애플리케이션/프로세스가 종료되었을 때 실행되는 Linux 커널 모듈에서 사용할 수있는 훅이 있는지 궁금합니다.사용자 공간 프로세스의 Linux 커널 모듈 신호가 종료되었습니다.

+0

특정 프로세스 또는 모든 프로세스에만 해당합니까? 특정 신호를 수신하는 프로세스 또는 프로세스를 정상적으로 종료하는 데 관심이 있습니까? – Tuxdude

+1

** ARM **,'#include '및'thread_register_notifier()'. 'THREAD_NOTIFY_EXIT'를 사용하십시오. 참조 : https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/include/asm/thread_notify.h –

+0

@Tuxdude : 모든 프로세스와 어떤 신호. 제 경우에는 커널 모듈이 PID를 기반으로 일부 데이터를 저장하고 프로세스가 종료 되 자마자 정리해야합니다. – ZedTuX

답변

2

먼저 커널 모듈에 알리미 체인을 등록 할 수 있습니다.

get_signal_to_deliver (커널/signal.c)의 PF_SIGNALED 플래그가 설정되어있다 사망 단지 (이되는 상대 용어 IMHO)가 모든 프로세스 내부. 여기 당신과 같이 그 tcomm 필드를 사용하여 현재 프로세스의 이름을 확인할 수 있습니다 :

char tcomm[sizeof(current->comm)]; 
get_task_comm(tcomm, current); 

그것을 실제로 질문에서 처리하는 경우, 당신은 당신의 모듈이 깨어나 알림 체인을 발사 할 수 그 사슬에서 기다리고있어.

+0

고맙습니다! – ZedTuX

관련 문제