Ubuntu – Process 프로세스

프로세스 (process)

정의

“하드디스크에 저장된 실행 코드(프로그램)가 메모리에 로딩되어 활성화된 것”

실행 중인 프로그램 또는 작업 단위를 의미하기도 함

프로세스는 프로그램이 메모리에서 실행되며, 각 프로세스는 고유한 **프로세스 ID(PID)**를 가집니다.

포그라운드(Foreground) 프로세스

화면에 나타나 사용자와 상호 작용하는 프로세스

화면에 출력되며, 사용자의 입력을 받아들이고 사용자와의 상호 작용을 통해 작업을 수행

백그라운드 (Background) 프로세스

사용자와의 직접적인 상호 작용 없이 실행되는 프로세스

주로 긴 작업을 수행하거나 백엔드에서 실행되는 서비스 형태의 프로그램에 사용

화면에 출력되지 않으며, 사용자 입력을 기다리지 않고 동작

Ctrl + Z : 멈춤
bg : Background로 실행
job : Background로 실행 프로세스 확인
fg : Foreground로 변경
& : Background로 실행 (vim과 같은 프로세스는 의미가 없음)

특징

프로세스는 시스템 자원(CPU, 메모리 등)을 사용합니다.

부모 프로세스자식 프로세스 관계를 가질 수 있습니다.

프로세스는 실행 상태(실행 중, 대기 중, 종료된 등)에 따라 변화합니다.

  • 모든 프로세스는 혼자서 독립적으로 실행되는 것이 아닌 부모 프로세스의 하위에 종속되어 실행된다.
    예를 들어 Firefox는 X 윈도 프로세스가 구동된 상태에서 실행되어야 하므로 X 윈도는 Firefox의 부모 프로세스, Firefox는 X 윈도의 자식 프로세스

관련 명령어

ps        # 현재 실행 중인 프로세스 확인
top       # 실시간으로 프로세스와 시스템 자원 사용 확인
htop      # top의 인터페이스를 개선한 도구
kill      # 특정 프로세스 종료
pkill     # 이름 기반으로 프로세스 종료
pstree    # 부모. 자식 프로세스의 관계를 트리의 형태로 보여줌

예제

# 현재 사용자의 프로세스 확인
ps

# 시스템의 모든 프로세스 상세 정보 확인
ps aux

# 특정 프로세스 검색 (grep 활용)
ps aux | grep nginx

# 특정 사용자의 프로세스 확인
ps -u root

# 모든 프로세스의 전체 형식 정보 확인
ps -ef

# 특정 프로세스 ID의 정보 확인
ps -p 1234

# 전체 형식으로 특정 프로세스 ID의 정보 확인
ps -f -p 1234

# 프로세스 계층 구조를 트리 형태로 표시
ps -e --forest

# CPU 사용률에 따라 정렬하여 표시
ps -e --sort=-%cpu

# 특정 터미널에서 실행 중인 프로세스 확인
ps -t tty1

# 특정 그룹의 프로세스 확인
ps -G staff

# 특정 프로세스의 쓰레드 정보 표시
ps -L -p 1234

# 작업 제어 형식으로 프로세스 표시
ps -j

# 특정 형식으로 출력
ps -o pid,uname,comm

# 실시간으로 프로세스와 시스템 자원 사용 확인
top

# top의 인터페이스를 개선한 도구
htop

# 특정 프로세스 종료
kill -9 1234

# 이름 기반으로 프로세스 종료
pkill nginx

# 부모, 자식 프로세스의 관계를 트리 형태로 표시
pstree

# 현재 터미널에서 실행 중인 백그라운드 작업 확인
jobs

# 현재 터미널에서 실행 중인 프로세스를 foreground로 전환
fg %1

# 현재 터미널에서 실행 중인 프로세스를 background로 전환
bg %1
ps -ef, kill -9 9001
top

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤