【发布时间】:2018-11-12 19:25:38
【问题描述】:
我已阅读 glibc 手册中有关作业控制的章节,但我想知道当 shell 终止时如何处理剩余的作业。
我认为以下步骤(遵循 posix 处理孤立进程组的约定,前两个步骤似乎很明显):
- 使用 shell 的 sid 向作业发送 HUP 信号
- 使用 shell 的 sid 向停止的作业发送 CONTINUE 信号
- 释放分配给作业数据结构的资源
我的问题是,如果这些工作继续存在怎么办?
我认为有机会更改他们的会话 ID 以释放 sid 并解除进程组与终端的关联(不确定这是否有意义)
我应该ioctl(STDIN_FILENO, TIOCSCTTY) 使会话进程失去控制终端并发送信号吗?
如何处理tty?我应该启动登录并将其设置为 tty 的新控制终端进程组吗?
我仍然很困惑,希望提供线索。
【问题讨论】:
标签: glibc job-control