
Linux 프로그래밍 인터페이스에서
대화형 셸에서 이 세 개의 파일 설명자 0, 1, 2는 일반적으로 셸이 실행 중인 터미널을 나타냅니다.
"쉘이 실행되는 터미널"은 대화형 쉘이 속한 세션의 제어 터미널을 의미합니까?
그렇다면 쉘 세션에 제어 터미널이 없다면 어떻게 될까요?
쉘이 상위 프로세스에서 생성되면 쉘은 다음 각 경우에 파일 설명자 0, 1, 2와 터미널 사이의 연결을 자동으로 생성합니다(쉘의 상위 프로세스에서 상속).
"셸이 실행 중인 터미널"이거나 제어 터미널이 0, 1, 2가 아닌 파일 설명자에서 이미 열려 있는 경우?
파일 설명자 0, 1 및 2가 "쉘이 실행되는 터미널" 또는 제어 터미널이 아닌 파일에 이미 연결된 경우?
- 인용문의 쉘이 비대화형이라면 어떻게 될까요?
감사해요.
그런데 "shell"이 POSIX 또는 bash라고 가정해 보세요.
답변1
아니요.
이는 의 다양한 구현을 통해 수행됩니다 getty
.open-controlling-tty
, SSH 서버의 분기된 pty-슬레이브 측 부분, GUI 터미널 에뮬레이터의 분기된 pty-슬레이브 측 부분 등에 의해 발생합니다.
그리고 인용된 텍스트에 주목하세요.아무런 의미가 없습니다쉘이 이 작업을 수행합니다. 당신은 허공에서 뽑아낸 잘못된 전제를 바탕으로 수많은 질문을 만들었습니다.
그리고 당신은 그것이 getty
이렇게 된다는 것을 알았습니다. 왜냐하면 당신은 "로그인으로 진행되는 프로세스 세션은 언제 시작되나요?"라는 질문과 동시에 작성되었습니다.
추가 읽기
- 게티와 에이지티의 차이점은 무엇인가요?
- "askfirst" getty with systemd("이 콘솔을 활성화하려면 Enter를 누르세요")
- 조나단 드 보인 폴라드. "가상 터미널 로그인".노쉬 가이드. 소프트웨어.
- 조나단 드 보인 폴라드. "실제 터미널 로그인".노쉬 가이드. 소프트웨어.