簡體   English   中英

SIGCHLD信號處理

[英]SIGCHLD Signal Processing

在Unix中,當后台中的子進程終止時,它會向父進程發送SIGCHLD信號,通知它已終止。

即使進程處於前台,也會發生同樣的情況嗎? 如果是這樣,這意味着父母將忽略它。

這是正確的嗎? 或者如果它在前台,那么根本沒有信號發送?

背景和前景是作業控制概念,並且是shell的一部分。 它們應用於進程,不會影響生成(執行)另一個進程的進程。

子進程是fork() - exec()調用的結果。 子進程獲取執行fork()調用的進程的父pid。 這是SIGCHLD信號的上下文,父pid接收SIGCHLD信號。 子進程是“前台”還是“后台”並不重要,只有ppid對進程退出才有意義。

沒有前景孩子這樣的東西 術語后台進程用於簡單地指代我們主要處理父進程(可以創建子進程來完成其工作的一部分)。 子進程退出SIGCHLD始終發送到父進程。 但是,父進程通常會忽略它。 如果父級要處理子級的退出或者只在子級退出后執行某些操作,則可以使用wait()系統調用來獲取子進程的狀態。

暫無
暫無

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

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