(非)控制进程可以通过关闭其文件描述符来分离其控制终端吗?

(非)控制进程可以通过关闭其文件描述符来分离其控制终端吗?

在与控制终端的进程会话中,

  • 如果控制进程关闭控制终端的文件描述符,进程会话是否会与控制终端分离,即没有任何控制终端?

  • 如果会话中的非控制进程关闭控制终端的文件描述符怎么办?

谢谢。

答案1

libc 手册:“...会话中的所有进程都从会话领导者那里继承控制终端。控制终端的会话领导者称为该终端的控制进程。 ……”

根据典型的“守护进程”场景摆脱控制终端的唯一方法是创建新会话。关闭文件描述符不会这样做。

答案2

默认情况下,程序没有与控制终端关联的文件描述符,因此无需关闭任何内容。你可以打开它,但是然后关闭它与控制终端关联无关。

相关内容