리눅스 커널 질문입니다.
조회수 2723회
kernel space에 insmod로 모듈을 하나 추가한 후에 그 추가한 드라이버에서 SIGUSR1 신호를 내려고 합니다. 이때 user space에서 kernel space의 SIGUSR1 신호를 받아서 처리해주려고 하는데 kernel space에서 user space로 SIGUSR1 신호를 주는 방법에 어떤게 있을까요?
감사합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
send_sig()를 사용하시면 됩니다.
send_sig(int sig, struct task_struct *p, int priv)ex )
send_sig(SIGUSR1, my_task, 0); send_sig(SIGUSR2, my_task, 0);
my_task 부분에는 signal을 전달할 task struct를 넣어주면되는데, pid를 알고있다면
struct task_struct *my_task; my_task = pid_task(find_vpid(process_pid), PIDTYPE_PID);
위와같은 방법으로 task를 알아낼 수 있습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력