[问题] 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