中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

運行 tail | grep 后按下 Ctrl – C 的過程中發(fā)生了什么

2018-08-22    來源:importnew

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

從?https://ubuntuforums.org/showthread.php?t=1761120&s=bbaf101ffbcc9abdb032d90cff01fc36?中看到的,記錄一下

在shell中運行 tail|grep 時發(fā)生了什么

  1. 運行tail
    • shell調(diào)用fork產(chǎn)生子進程
    • 重置信號處理函數(shù)為SIG_DFL
    • 產(chǎn)生新的進程組,并將子進程設(shè)置為該進程組的leader
    • exec tail
  2. 運行g(shù)rep
    • shell調(diào)用fork產(chǎn)生子進程
    • 重置信號處理函數(shù)為SIG_DFL
    • 將進程加入到?tail?產(chǎn)生的進程組中
    • exec tail
  3. 將新產(chǎn)生的進程組放到前臺,控制終端
    • tcsetpgrp(STDIN_FILENO, tail進程組);

當(dāng)按下Ctrl-c時發(fā)生了什么

根據(jù)?setpgrp?manual page 的說法,按下?Ctrl-c?后:

  • 終端產(chǎn)生?SIGINT?信號
  • 前臺進程組中的所有進程都會接收到?SIGINT?信號然后退出(默認(rèn)動作)
  • shell通過調(diào)用?waitpid?清理進程表中子進程信息

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:MySQL 中 Identifier Case Sensitivity

下一篇:利用 Lambda 表達式實現(xiàn) Java 中的惰性求值