我正在创建一个程序,它创建n个与主进程通信的deamon。当他们得到sigusr1信号时,Deamons通过fifo发送单个味精。当主进程得到sigusr1时,它关闭随机fifo。当随机fifo关闭时,我希望通过该fifo进行通信的deamon死亡。它似乎不起作用...虽然文件描述符已关闭,但deamon仍然活着,并且在发送sigusr1时仍然不会死亡。 (每个守门员必须在同一组中)。如果另一端的文件描述符关闭,则终止进程
是否有可能将fifos的2个末端连接到2个进程并同步它?
我正在创建一个程序,它创建n个与主进程通信的deamon。当他们得到sigusr1信号时,Deamons通过fifo发送单个味精。当主进程得到sigusr1时,它关闭随机fifo。当随机fifo关闭时,我希望通过该fifo进行通信的deamon死亡。它似乎不起作用...虽然文件描述符已关闭,但deamon仍然活着,并且在发送sigusr1时仍然不会死亡。 (每个守门员必须在同一组中)。如果另一端的文件描述符关闭,则终止进程
是否有可能将fifos的2个末端连接到2个进程并同步它?
关闭fifo的一端并不表示信号的另一端。写入到另一端将阻塞,直到有读者。我认为插座的语义在这里会更好。另一种选择是使用一对fifos,每个方向一个。第二个fifo提供一个ACK或一个明确的QUIT消息。
通常,'execl'后面的行更像'exit(EXIT_FAILURE)',因为如果'execl'失败,您只能到达那里。 –
它会影响我的问题吗?因为一切似乎都起作用 – Thomas
不,这不太可能是相关的,但它很奇怪。 –