看板 LinuxDev 關於我們 聯絡資訊
我有個需求就是 kernel 中發生某事件需要通知 user space 某個 procss 目前有兩個問題 1. kernel 怎麼發 signal 通知 user space process , 有什麼 api 可以作到嗎? 2. kernel 發送的 pid , 因為user space 啟動的程式每次pid都不一樣, 但是 process name 是固定, 有辦法在kernel中透過 process name 找到對應的 pid 嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.182.206.224 ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1444738614.A.5BA.html
yvb: 1. 參見 kernel/signal.c 和 include/linux/sched.h 10/13 22:00
yvb: 2. 使用 for_each_process 和 get_task_comm 一筆筆找... 10/13 22:01
yshihyu: yvb 大概懂怎麼找 pid 了,, 但是signal怎麼使用可否 10/13 22:50
yvb: 但較一般的做法是,process跟kernel註冊,讓kernel記住其pid... 10/13 22:50
yvb: 另外, 也許可考慮用 Netlink / D-Bus ... 10/13 22:52
yshihyu: http://0rz.tw/M6aTn 剛剛有在網路上找到這篇文章 10/13 22:53
yshihyu: 可是他好像是做成一個module 使用kill_proc_info 10/13 22:54
yshihyu: 如果我只是在kernel 直接使用 kill_proc_info 可以嗎? 10/13 22:54
leolarrel: 我最推Netlink,其次我會選擇在/proc or /sys 弄一個 10/14 10:29
leolarrel: file,然後應用程式行程用select/poll/epoll接收通知.. 10/14 10:30