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
당신은 "에 있기 때문에 이렇다는 것을 알고 있습니다 .로그인 부팅 프로세스 세션은 언제 시작됩니까?”, 이 질문과 동시에 작성되었습니다.
추가 읽기
- 이들getty그리고 Agetty의 차이점은 무엇인가요?
- "askfirst" getty with systemd("이 콘솔을 활성화하려면 Enter를 누르세요")
- 조나단 드 보인 폴라드. "가상 터미널 로그인".스낵 가이드. 소프트웨어.
- 조나단 드 보인 폴라드. "실제 터미널 로그인".스낵 가이드. 소프트웨어.