默认子进程与父进程属于同一个进程组,所以注意对接受到的信号的处理方式
fork()時(shí),子進(jìn)程繼承了父進(jìn)程的進(jìn)程組ID,所以父子進(jìn)程默認(rèn)屬于同一個(gè)進(jìn)程組,又因?yàn)橥粋€(gè)進(jìn)程組的進(jìn)程可以接受來自同一終端的各種信號(hào)所以當(dāng)希望用鍵盤發(fā)送信號(hào)(如按下Ctrl+C)時(shí),父子進(jìn)程對(duì)接收到的父子進(jìn)程有不同的處理方式時(shí),那么子進(jìn)程就不能繼承父進(jìn)程的處理該信號(hào)的函數(shù),要在子進(jìn)程的代碼中單獨(dú)注冊(cè)處理該信號(hào)的函數(shù)。
fork()創(chuàng)建子進(jìn)程就是父進(jìn)程的一份拷貝,大部分屬性都繼承過來,但仍有部分屬性不同。
》真實(shí)用戶ID和組ID,有效用戶ID和組ID。
》進(jìn)程組ID
》session ID
》所有打開文件及文件的偏移量。
》控制終端
》設(shè)置用戶ID和設(shè)置組ID標(biāo)記位
》根目錄和當(dāng)前工作目錄
》文件默認(rèn)創(chuàng)建的權(quán)限掩碼
》可訪問的內(nèi)存區(qū)段
》環(huán)境變量及其他資源分配
》進(jìn)程ID
》運(yùn)行時(shí)間記錄,timer等
》父進(jìn)程對(duì)文件的鎖定
來源:父子進(jìn)程屬性異同
·········································································································
來源:進(jìn)程】進(jìn)程組
(1)進(jìn)程組,也稱之為作業(yè),BSD與1980年前后向UNIX中增加的一個(gè)新特性,代表一個(gè)或多個(gè)進(jìn)程的集合。每個(gè)進(jìn)程都屬于一個(gè)進(jìn)程組,在waitpid函數(shù)和kill函數(shù)的參數(shù)中都曾經(jīng)使用到,操作系統(tǒng)設(shè)計(jì)的進(jìn)程組的概念,是為了簡化對(duì)多個(gè)進(jìn)程的管理。
當(dāng)父進(jìn)程創(chuàng)建子進(jìn)程的時(shí)候,默認(rèn)子進(jìn)程與父進(jìn)程屬于同一個(gè)進(jìn)程組,進(jìn)程組是一個(gè)或多個(gè)進(jìn)程的集合,通常它們與一組作業(yè)相關(guān)聯(lián),默認(rèn)子進(jìn)程與父進(jìn)程屬于同一個(gè)進(jìn)程組。進(jìn)程組ID等于進(jìn)程組第一個(gè)進(jìn)程ID(組長進(jìn)程)。所以,組長進(jìn)程標(biāo)識(shí):其進(jìn)程組ID等于其進(jìn)程ID.
組長進(jìn)程可以創(chuàng)建一個(gè)進(jìn)程組,創(chuàng)建該進(jìn)程組的進(jìn)程,然后終止,只要進(jìn)程組中有一個(gè)進(jìn)程存在,進(jìn)程組就存在,與組長進(jìn)程是否終止無關(guān)。
(2)kill發(fā)送給進(jìn)程組
使用 kill -n -pgid 可以將信號(hào) n 發(fā)送到進(jìn)程組 pgid 中的所有進(jìn)程。例如命令 kill -9 -4115 表示殺死進(jìn)程組 4115 中的所有進(jìn)程。
————————————————
版權(quán)聲明:本文為CSDN博主「月雲(yún)之霄」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/isunbin/article/details/88855114
總結(jié)
以上是生活随笔為你收集整理的默认子进程与父进程属于同一个进程组,所以注意对接受到的信号的处理方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu 虚拟机更改/修改root密
- 下一篇: 汇编--INT 10H功能