[問題] kernel send signal to user space

看板LinuxDev作者 (yshihyu)時間9年前 (2015/10/13 20:16), 編輯推噓1(109)
留言10則, 3人參與, 最新討論串1/1
我有個需求就是 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

10/13 22:00, , 1F
1. 參見 kernel/signal.c 和 include/linux/sched.h
10/13 22:00, 1F

10/13 22:01, , 2F
2. 使用 for_each_process 和 get_task_comm 一筆筆找...
10/13 22:01, 2F

10/13 22:50, , 3F
yvb 大概懂怎麼找 pid 了,, 但是signal怎麼使用可否
10/13 22:50, 3F

10/13 22:50, , 4F
但較一般的做法是,process跟kernel註冊,讓kernel記住其pid...
10/13 22:50, 4F

10/13 22:52, , 5F
另外, 也許可考慮用 Netlink / D-Bus ...
10/13 22:52, 5F

10/13 22:53, , 6F
http://0rz.tw/M6aTn 剛剛有在網路上找到這篇文章
10/13 22:53, 6F

10/13 22:54, , 7F
可是他好像是做成一個module 使用kill_proc_info
10/13 22:54, 7F

10/13 22:54, , 8F
如果我只是在kernel 直接使用 kill_proc_info 可以嗎?
10/13 22:54, 8F

10/14 10:29, , 9F
我最推Netlink,其次我會選擇在/proc or /sys 弄一個
10/14 10:29, 9F

10/14 10:30, , 10F
file,然後應用程式行程用select/poll/epoll接收通知..
10/14 10:30, 10F
文章代碼(AID): #1M7FOsMw (LinuxDev)
文章代碼(AID): #1M7FOsMw (LinuxDev)