孤儿进程如何解决拒绝gets输入的问题?

一个其父进程已终止的进程称为孤儿进程(orphan process),这种进程由 init 进程”收养“。
本文中,讨论的是孤儿进程组:
       对孤儿进程组的另一种描述:一个进程组不是孤儿进程组的条件是,该组中有一个进程,其父进程在属于同一个会话(session)的另一个组中。

   进程组成为孤儿进程组后,POSIX.1 要求内核向新的孤儿进程组中处于停止状态的每一个进程发送挂断信号(SIGHUP),接着又向其发送继续运行信号(SIGCONT)。
unix(linux) 对挂断信号(SIGHUP)的系统默认动作是终止该进程,为此,必须提供一个信号处理程序以捕捉该信号。

3. 下面以一个父进程 + 一个子进程 组成的进程组为例,理解进程组成为孤儿进程组(本例中:该孤儿进程组就这一个子进程)后的行为。 下图是本例中的进程关系。

在进程中调用 pr_ids后,程序试图读标准输入。一般情况下,当后台进程组试图读控制终端时,则对该后台进程组产生 SIGTTIN 信号,其默认动作是停止进程。但是在这里,这是一个孤儿进程组,如果内核用此信号停止它,则此进程组中的进程就再也不会继续。 POSIX.1 规定,在这种情况下, read 函数返回出错,并将其errno 设置为 EIO。

}

我要回帖

更多关于 缺少返回语句java 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信