[問題] 請問有可能用一個library管理 child嗎?

看板C_and_CPP (C/C++)作者 (123)時間2年前 (2022/06/14 21:53), 編輯推噓3(3014)
留言17則, 6人參與, 最新討論串1/1
板友們晚安,打擾了. 我是在Linux C 底下寫lib,只能提供3個API,目前在設計階段 start(..): 內會 fork 出兩個 process持續運作,之後把PID紀錄在share memory就 return 了 stop(..): 內可能會kill存在share memory中的pid get_status(...)內可能會獲得process狀態 我的預想是,process call library 的 start(),fork 出 process,理應屬於 process 的 child,但我即使在 process內用 signal(SIGHLD, handler),仍然收不到child 離開 的signal。請問是不是start()已經return了,而導致我收不到呢? 另外,有沒有可能寫個library來管理 child process ,來達到我上面3個API的行為呢? 誠心請教,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.110.19 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1655214826.A.6B3.html

06/14 22:08, 2年前 , 1F
06/14 22:08, 1F

06/15 00:00, 2年前 , 2F
更正。我call stop()去 kill(pid, 9)外面可以收到sig
06/15 00:00, 2F

06/15 00:00, 2年前 , 3F
只是不知道為何 child 自己 return,卻收不到
06/15 00:00, 3F

06/15 00:01, 2年前 , 4F
謝w大
06/15 00:01, 4F

06/15 01:07, 2年前 , 5F
雖然有點不太可能, 但你是在 fork 後才註冊 SIGCHLD 的嗎?
06/15 01:07, 5F

06/15 01:07, 2年前 , 6F
是的話這裡可能會有時間差, 註冊前子行程結束就會預設收走
06/15 01:07, 6F

06/15 03:18, 2年前 , 7F
你為什麼要設計出這麼複雜的系統來搞自己 XDDDD
06/15 03:18, 7F

06/15 03:32, 2年前 , 8F
這中間可以出錯的 pitfall 太多,寫出來能長期執行穩定
06/15 03:32, 8F

06/15 03:32, 2年前 , 9F
不故障的,大概都是天外飛仙那個等級
06/15 03:32, 9F

06/15 07:00, 2年前 , 10F
我是在fork前註冊的
06/15 07:00, 10F

06/15 09:46, 2年前 , 11F
你這個設計真的太複雜, 會用在 thread 的環境嗎?
06/15 09:46, 11F

06/15 21:13, 2年前 , 12F
我不會用在 thread 環境,也不會 fork process執行
06/15 21:13, 12F

06/15 21:14, 2年前 , 13F
我先設計個完整點再來和大家討論好了XD
06/15 21:14, 13F

06/16 20:42, 2年前 , 14F
列好自己的use case再來說設計 不然不好討論
06/16 20:42, 14F

06/21 01:59, , 15F
恩....你問題的描述跟用詞可能要在精準一點 lib管理proce
06/21 01:59, 15F

06/21 02:00, , 16F
ss大概可以猜到意思但難懂 離開是指process結束還是func
06/21 02:00, 16F

06/21 02:00, , 17F
tion結束.....看不太懂
06/21 02:00, 17F
文章代碼(AID): #1Yg9BgQp (C_and_CPP)
文章代碼(AID): #1Yg9BgQp (C_and_CPP)