运行 tail | grep 后按下 Ctrl – C 的过程中发生了什么
2018-08-22 来源:importnew
原文出处: 暗无天日
从?https://ubuntuforums.org/showthread.php?t=1761120&s=bbaf101ffbcc9abdb032d90cff01fc36?中看到的,记录一下
在shell中运行 tail|grep 时发生了什么
- 运行tail
- shell调用fork产生子进程
- 重置信号处理函数为SIG_DFL
- 产生新的进程组,并将子进程设置为该进程组的leader
- exec tail
- 运行grep
- shell调用fork产生子进程
- 重置信号处理函数为SIG_DFL
- 将进程加入到?
tail
?产生的进程组中 - exec tail
- 将新产生的进程组放到前台,控制终端
- tcsetpgrp(STDIN_FILENO, tail进程组);
当按下Ctrl-c时发生了什么
根据?setpgrp
?manual page 的说法,按下?Ctrl-c
?后:
- 终端产生?
SIGINT
?信号 - 前台进程组中的所有进程都会接收到?
SIGINT
?信号然后退出(默认动作) - shell通过调用?
waitpid
?清理进程表中子进程信息
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
最新资讯
热门推荐