2016-02-11 100 views
-1

我正在创建一个程序,它创建n个与主进程通信的deamon。当他们得到sigusr1信号时,Deamons通过fifo发送单个味精。当主进程得到sigusr1时,它关闭随机fifo。当随机fifo关闭时,我希望通过该fifo进行通信的deamon死亡。它似乎不起作用...虽然文件描述符已关闭,但deamon仍然活着,并且在发送sigusr1时仍然不会死亡。 (每个守门员必须在同一组中)。如果另一端的文件描述符关闭,则终止进程

是否有可能将fifos的2个末端连接到2个进程并同步它?

+0

通常,'execl'后面的行更像'exit(EXIT_FAILURE)',因为如果'execl'失败,您只能到达那里。 –

+0

它会影响我的问题吗?因为一切似乎都起作用 – Thomas

+0

不,这不太可能是相关的,但它很奇怪。 –

回答

0

我不知道,但在守护进程的代码中,你不应该放置退出函数来退出守护进程的子进程,并且父进程可以退出状态?

+0

这是一条评论而不是答案。 – kaylum

2

关闭fifo的一端并不表示信号的另一端。写入到另一端将阻塞,直到有读者。我认为插座的语义在这里会更好。另一种选择是使用一对fifos,每个方向一个。第二个fifo提供一个ACK或一个明确的QUIT消息。

+0

需要用fifo或pipe来完成 – Thomas

+0

编辑答案建议双向通信 – dancancode

+0

是不是有重复文件描述符的方法? – Thomas

相关问题