
여러 프로세스가 있고 제어 터미널이 없는 세션이 있다고 가정합니다.
세션 리더가 제어 터미널에 대한 연결을 생성하면,
동일한 세션의 다른 프로세스는 세션에 제어 터미널이 있고
어떻게 제어 터미널도 사용할 수 있습니까?
제가 이런 질문을 하게 된 이유는 다음과 같습니다. 일반적으로 프로세스는 setsid()
새 세션을 시작하고 리더가 되기 위해 호출하고 open()
제어 터미널에 연결하기 위해 호출합니다. 그런 다음 세션 리더는 fork()
하위 프로세스로 이동하고 하위 프로세스는 제어 터미널에 파일 설명자를 상속합니다.
그런 다음 세션에 이미 여러 프로세스가 있지만 제어 터미널이 없는 경우 리더가 제어 터미널에 대한 연결을 생성한 다음 세션의 다른 프로세스는 어떻게 되는지 궁금합니다.
감사해요.
답변1
세션 리더가 제어 터미널을 획득한 후 생성하는 모든 새로운 하위 항목도 해당 제어 터미널을 갖게 됩니다. 제어 터미널은 부모로부터 상속된 것입니다.
즉, 기존 어린이는 영향을 받지 않습니다.