[問題] kernel send signal to user space

作者: yshihyu (yshihyu)   2015-10-13 20:16:50
我有個需求就是 kernel 中發生某事件需要通知 user space 某個 procss
目前有兩個問題
1. kernel 怎麼發 signal 通知 user space process , 有什麼 api 可以作到嗎?
2. kernel 發送的 pid , 因為user space 啟動的程式每次pid都不一樣,
但是 process name 是固定, 有辦法在kernel中透過 process name 找到對應的 pid 嗎?
謝謝
作者: yvb   2015-10-13 22:00:00
1. 參見 kernel/signal.c 和 include/linux/sched.h2. 使用 for_each_process 和 get_task_comm 一筆筆找...
作者: yshihyu (yshihyu)   2015-10-13 22:50:00
yvb 大概懂怎麼找 pid 了,, 但是signal怎麼使用可否
作者: yvb   2015-10-13 22:50:00
但較一般的做法是,process跟kernel註冊,讓kernel記住其pid...另外, 也許可考慮用 Netlink / D-Bus ...
作者: yshihyu (yshihyu)   2015-10-13 22:53:00
http://0rz.tw/M6aTn 剛剛有在網路上找到這篇文章可是他好像是做成一個module 使用kill_proc_info如果我只是在kernel 直接使用 kill_proc_info 可以嗎?
作者: leolarrel (真.粽子無雙)   2015-10-14 10:29:00
我最推Netlink,其次我會選擇在/proc or /sys 弄一個file,然後應用程式行程用select/poll/epoll接收通知..

Links booklink

Contact Us: admin [ a t ] ucptt.com