父程序退出,保證子程序交由init。

2021-06-22 13:51:00 字數 369 閱讀 8429

最近寫**遇到父程序fork出的子程序,父程序退出後子程序也退出。而要求的實現機制是,父程序啟動子程序後,保證子程序能夠繼續執行,可以保證另乙個程序啟動能夠和這個子程序進行通訊操作。

2) sigint 程式終止(interrupt)訊號, 在使用者鍵入intr字元(通常是ctrl-c)時發出 

因為父程序收到ctrl+c訊號導致子程序也收到這個訊號,子程序預設退出。

經驗:fork程序時建議fork兩次,如果一次的話經常會出現父程序退出子程序變成殭屍程序。**如下:

if((pid=fork())==0)

}debuging("children pid\n");

_exit(0);

}else if (pid > 0)

wait 函式父程序等待子程序退出

include include pid t wait int status pid t waitpid pid t pid,int status,int options include include pid t wait int status pid t waitpid pid t pid,int...

子程序退出,父程序為什麼要等待?

在模擬實現之前,我們首先要理解什麼是阻塞狀態?作業系統將不滿足某種條件的程序從執行佇列中拿出,將其狀態設定為其他狀態並放入等待佇列中,在此等待佇列中的程序的都處於阻塞狀態。1 殭屍程序,造成記憶體洩漏 2 父程序得管理子程序,所以父程序派給子程序的任務完成的如何,我們都需要知道,如,子程序執行完成,...

父程序與子程序管道

int main else return 0 先在父程序中建立管道,然後建立子程序,子程序複製了父程序管道檔案的檔案描述符,所以父程序和子程序各具有2個管道描述符,當在子程序中關閉讀端,這時關閉的是子程序中管道檔案的讀端,而父程序的讀端沒有關閉,這時子程序往寫段寫資料的時候,因管道讀端未完全關閉,所...