2. 터미널 제어

실행 중인 프로세스를 검사할 때 ps 명령어 출력에서 TTY 필드를 발견하게 될 것입니다. 이 필드는 해당 명령을 실행한 제어 터미널을 나타내므로 중요합니다. 이 개념을 이해하는 것은 프로세스를 효과적으로 관리하는 데 핵심입니다.

TTY 란 무엇인가

TTY 는 '텔레타이프 (Teletype)'의 약자로, 역사적으로 컴퓨터와 상호 작용하기 위한 물리적 장치를 의미했습니다. 현대의 Linux 시스템에서 TTY 는 프로세스에 대한 표준 입력과 출력을 제공하는 터미널을 지칭합니다.

만나게 될 터미널에는 크게 두 가지 유형이 있습니다. 터미널 장치와 의사 터미널 장치입니다.

터미널 장치 대 의사 터미널 (Pseudo-Terminal)

진정한 터미널 장치는 명령을 입력하고 출력을 직접 볼 수 있게 해주는 기본 콘솔입니다. 가상 콘솔로 전환하여 이를 경험할 수 있습니다. 많은 시스템에서 Ctrl-Alt-F1을 눌러 TTY1 에 접근할 수 있습니다. 여기서는 그래픽 인터페이스 없이 순수 텍스트 기반 환경에서 로그인 프롬프트를 보게 됩니다. 이것이 바로 고전적인 터미널 장치입니다. 그래픽 세션으로 돌아가려면 일반적으로 Ctrl-Alt-F7을 사용할 수 있습니다 (정확한 키 조합은 다를 수 있습니다).

반면에, 의사 터미널 (PTS) 은 가장 흔하게 사용하는 것입니다. 그래픽 데스크톱 환경 내에서 터미널 애플리케이션을 열 때 PTS 를 사용하는 것입니다. 이들은 창 내에서 터미널을 에뮬레이트합니다. 셸의 ps tty 출력을 확인하면 TTY 가 pts/*로 나열된 것을 볼 수 있습니다.

제어 터미널의 역할

대부분의 프로세스는 제어 터미널에 바인딩되어 있습니다. 이는 프로세스의 수명 주기가 해당 프로세스를 시작한 터미널 세션과 연결되어 있음을 의미합니다. 예를 들어, 터미널 창에서 find와 같은 프로그램을 실행한 다음 해당 창을 닫으면 find 프로세스도 함께 종료됩니다.

제어 터미널이 없는 프로세스

데몬 (daemon) 이라고 불리는 일부 프로세스는 백그라운드에서 실행되며 시스템 서비스를 관리하도록 설계되었습니다. 이러한 프로세스는 시스템 부팅 시 시작되어 시스템 종료 시에만 중지되는 경우가 많습니다.

이들이 실수로 종료되는 것을 방지하기 위해 데몬은 제어 터미널에 연결되지 않습니다. ps 사용법을 배워 이러한 프로세스를 검사할 때 TTY 열에 물음표 (?) 가 표시됩니다. 이 ?는 해당 프로세스가 제어 터미널을 가지고 있지 않으며 사용자 세션과 독립적으로 실행되고 있음을 나타냅니다.

로그인하여 학습 진행 상황을 저장하세요

로그인

연습 문제

연습이 완벽함을 만듭니다! Linux 프로세스와 터미널과의 상호 작용에 대한 이해를 강화하기 위한 실습 랩이 있습니다:

  1. Linux 프로세스 관리 및 모니터링 - 이 랩에서는 Linux 시스템에서 프로세스를 관리하고 모니터링하는 필수 기술을 배웁니다. 포그라운드 및 백그라운드 프로세스와 상호 작용하는 방법, ps로 검사하는 방법, top으로 리소스 모니터링하는 방법, renice로 우선순위 조정하는 방법, kill로 종료하는 방법을 탐색합니다.

이 랩은 실제 시나리오에서 프로세스 관리 개념을 적용하고 프로세스가 실행되고 시스템과 상호 작용하는 방식을 이해하는 데 자신감을 심어줄 것입니다.

퀴즈

제어 터미널이 없는 프로세스에 할당되는 값은 무엇입니까?