我正在創建一個程序,它創建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
不,這不太可能是相關的,但它很奇怪。 –