簡體   English   中英

如何跟蹤在C ++中殺死了所有子進程

[英]How to keep track of which all child processes are killed in c++

我正在寫服務器。 它使用fork()創建新的子進程。 我想在父進程死亡時殺死子進程。 我打算使用一個數組來存儲子進程的pid。但是,子進程可能會在父進程之前終止。 在這種情況下,如果我們使用SIGKILL和已經終止的子進程的pid調用kill函數,它將引發異常嗎?

當子進程終止時, SIGCHLD信號將發送到父進程。 您可以在父級中處理此信號,然后在有機會wait之前自行檢查終止了哪些子級。 並且您應該wait()防止所有子進程進入僵屍進程。

您還可以查看此線程,以一種替代的方式讓父級終止時子級終止: 如何使父級退出后子級進程死亡?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM