![세션의 각 프로세스는 세션이 연결된 터미널에서 입력을 받아 해당 터미널로 출력을 보냅니까?](https://linux55.com/image/121456/%EC%84%B8%EC%85%98%EC%9D%98%20%EA%B0%81%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%8A%94%20%EC%84%B8%EC%85%98%EC%9D%B4%20%EC%97%B0%EA%B2%B0%EB%90%9C%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C%20%EC%9E%85%EB%A0%A5%EC%9D%84%20%EB%B0%9B%EC%95%84%20%ED%95%B4%EB%8B%B9%20%ED%84%B0%EB%AF%B8%EB%84%90%EB%A1%9C%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20%EB%B3%B4%EB%83%85%EB%8B%88%EA%B9%8C%3F.png)
이 튜토리얼의 내용은 다음과 같습니다.
각 세션은 터미널에 바인딩되며 세션의 프로세스는 터미널에서 입력을 받고 터미널로 출력을 보냅니다.
터미널에서 일부 프로그램(이 프로그램/프로세스는 터미널에 연결된 세션에 있음)을 열고 프로그램을 stdout
파일로 리디렉션했기 때문에 이 설명이 잘못된 것 같습니다. 이제 프로그램은 출력을 터미널로 보내지 않습니다.
내가 맞나요?
답변1
이 명령문은 명목상의 상황을 올바르게 설명합니다. 터미널을 열고 해당 터미널의 자체 세션에서 쉘을 실행한 다음 쉘에서 더 많은 프로그램을 실행합니다. 이 진술이 일반적으로 부정확하다는 것은 맞습니다. 모든 프로세스는 세션 제어 터미널뿐만 아니라 어디에서나 출력을 보내고 입력을 받을 수 있습니다. 쉘 리디렉션은 프로세스의 표준 입력 또는 출력을 터미널이 아닌 다른 것으로 만드는 가장 일반적인 방법입니다.
튜토리얼이 모든 상황을 다룰 것이라고 기대하지 마십시오. 이런 경우에는 이해하기 어렵습니다.