欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识

并将子进程设置为该进程组的leader exec tail 运行grep shell调用fork产生子进

点击: 次  来源:劳务派遣管理系统 时间:2018-08-21

原文出处: 暗无天日

从 https://ubuntuforums.org/showthread.php?t=1761120&s=bbaf101ffbcc9abdb032d90cff01fc36 中看到的,记录一下

在shell中运行 tail|grep 时产生了什么

  1. 运行tail
  2. shell挪用fork发生子历程
  3. 重置信号处理惩罚函数为SIG_DFL
  4. 发生新的历程组,劳务派遣管理系统昆山软件开发,并将子历程配置为该历程组的leader
  5. exec tail
  6. 运行grep
  7. shell挪用fork发生子历程
  8. 重置信号处理惩罚函数为SIG_DFL
  9. 将历程插手到 tail 发生的历程组中
  10. exec tail
  11. 将新发生的历程组放到前台,节制终端
  12. tcsetpgrp(STDIN_FILENO, tail历程组);

当按下Ctrl-c时产生了什么

按照 setpgrp manual page 的说法,昆山软件公司,按下 Ctrl-c 后:

  • 终端发生 SIGINT 信号
  • 前台历程组中的所有历程城市吸收到 SIGINT 信号然退却出(默认行动)
  • shell通过挪用 waitpid 清理历程表中子历程信息