프로세스
※ 2024.05.20에 수정되었습니다.
1. 프로세스
- 프로세스(Process)란? 자원을 할당 받고 PID를 부여 받은 프로그램입니다.
- ※ PID(Process IDentifier) : 각 프로세스를 고유하게 식별하기 위해 시스템에서 할당하는 숫자입니다.
- 프로세스는 시스템에서 리소스를 할당받아 작업을 수행하며, 운영체제는 이러한 프로세스를 관리합니다.
- 리눅스에서 프로세스는 여러 종류와 상태를 가지며, 다양한 명령어를 통해 관리하고 모니터링할 수 있습니다.
2. 프로세스의 의존성
- 하나의 프로세스가 정상적으로 실행되기 위해 다른 프로세스, 라이브러리, 설정 파일 등의 자원에 의존합니다.
- 이러한 의존성은 시스템 동작과 성능에 큰 영향을 미치며, 데몬, 서버 애플리케이션, 복잡한 SW 패키지에서 중요하게 다루어집니다.
3. 프로세스 인스턴스
- 동일한 프로그램을 여러번 실행시키면, 하나의 프로그램을 여러 개로 복제하여 실행합니다.
- 이때, 복제된 프로그램을 인스턴스라고 합니다.
4. 프로세스의 종류
- 프로세스의 종류에 대해 알아봅시다.
1) 포르가운드 프로세스(Foreground Process)
- 사용자가 직접 명령어를 입력하여, 실행하는 프로세스입니다.
- 터미널에서 실행되며, 사용자 입력을 기다리고 결과를 출력합니다.
2) 백그라운드 프로세스(Background Process)
- 터미널에서 실행되지만, 사용자 입력을 기다리지 않고 백그라운드에서 실행됩니다.
- 일반적으로 명령어 끝에 '&'를 붙여, 실행합니다.
mycommand &
3) 데몬(Daemon)
- 시스템에서 백그라운드로 실행되는 프로세스로, 특정 작업을 수행하는 서버 역할을 합니다.
- 예를 들어, 웹 서버인 Apache(httpd)는 데몬입니다.
5. 프로세스 상태
- 프로세스는 여러 상태를 가질 수 있으며, 이는 'ps' 명령어의 'STAT' 컬럼에서 확인할 수 있습니다.
- R(Running) : 실행 중 or 실행 준비가 된 상태
- S(Sleeping) : 대기 상태로, 특정 이벤트를 기다리는 중
- D(Uninterruptible sleep) : 디스크 I/O같은 인터럽트 불가능한 작업을 기다리는 중
- T(Stopped) : 일시 정지된 상태
- Z(Zombie) : 종료되었지만, 아직 부모 프로세스가 종료 상태를 수집하지 않은 상태
6. 주요 명령어
1) 프로세스 목록 보기
- 모든 사용자와 모든 터미널의 프로세스를 상세히 보여줍니다.
ps aux
2) 실시간 프로세스 모니터링
- 시스템에서 실행 중인 프로세스를 실시간으로 모니터링할 수 있습니다.
top
3) 특정 프로세스 종료
- 지정한 PID를 가진 프로세스를 종료합니다.
kill <PID>
4) 백그라운드 작업 중지 및 재개
- 작업을 백그라운드로 전환합니다.
mycommand &
- 백그라운드 작업을 포그라운드로 전환
fg %1 # 작업 번호 1번을 포그라운드로 전환
- 백그라운드 작업 목록 보기
jobs
5) 특정 프로세스에 대한 상세 정보 보기
ps -p <PID> -f
7. 정리하며
- 지금까지 프로세스(Process)에 대해 알아보았습니다.
- 리눅스 환경에서 프로세스 관리는 매우 중요한 기술로 자리 잡고 있습니다.
'Back-End Study > Linux' 카테고리의 다른 글
클라이언트와 서버 (0) | 2022.09.01 |
---|---|
네트워크 상태 확인 (0) | 2022.09.01 |
리눅스 쉘 작성 (0) | 2022.08.31 |
systemctl과 데몬 (0) | 2022.08.31 |
nginx (0) | 2022.08.27 |