프로세스

프로세스

※ 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