netlink_unicast在守护进程模式下返回errno -111(连接被拒绝)

时间:2013-04-08 17:33:24

标签: linux-kernel daemon fork netlink

我有一个使用Netlink的Linux内核模块,以便与在用户空间中运行的守护程序进程通信。

在开发阶段,我总是像正常进程一样运行守护进程可执行文件(不调用fork()),一切正常。

截至目前,主要行为的开发已经完成,所以我正在实现一个--daemon参数,该参数调用fork()方法(以及setsid(),如链接{{ 3}})就在继续正常过程之前。

下一步是初始化Netlink套接字后的守护进程调用Linux内核模块,并且这个守护程序正在保存守护进程的PID以便推送消息。 Linux内核守护程序正确接收来自守护程序进程的消息,但无法使用返回errno -111(拒绝连接)的netlink_unicast()发送消息。

我检查了Linux内核模块收到的PID,它在分叉后与守护进程相同,所以看起来是正确的。

你知道为什么我的守护进程在分叉时不再能够从我的Linux内核模块接收消息(使用recvmsg()方法)吗?

1 个答案:

答案 0 :(得分:0)

@ artless-noise是对的我忘了叫umask(0);