리눅스 프로세스 관리 (ps, top, kill..)

2025. 1. 22. 10:55·Linux

리눅스 프로세스 관리 개요

리눅스에서 프로세스(Process)는 실행 중인 프로그램 또는 명령어를 말하며, 시스템의 중요한 자원(메모리, CPU 등)을 효율적으로 관리합니다. 리눅스 프로세스 관리에 대해 알아보겠습니다.

프로세스의 기본 개념

  • 프로세스 ID (PID): 모든 프로세스는 고유한 프로세스 ID(PID)를 가집니다.
  • 부모-자식 관계: 모든 프로세스는 부모 프로세스에서 생성되며, 최상위 부모 프로세스는 init(systemd)이고 PID는 1입니다.
  • 프로세스 상태:
    • R (Running): 실행 중이거나 실행 준비 상태.
    • S (Sleeping): 대기 상태.
    • D (Uninterruptible): 종료 불가능한 대기 상태(I/O 작업 중).
    • Z (Zombie): 종료되었지만 부모 프로세스가 처리하지 않은 상태.
    • T (Stopped): 중지된 상태(예: Ctrl+Z로 중단).
---

프로세스 관련 주요 명령어

1. 프로세스 목록 확인

ps 명령어: 현재 실행 중인 프로세스를 확인합니다.

ps aux
  • a: 다른 사용자의 프로세스도 표시.
  • u: 프로세스 소유자, CPU 사용량 등 상세 정보.
  • x: 로그인 세션에 연결되지 않은 프로세스도 표시.

2. 실시간 프로세스 모니터링

top 명령어: CPU, 메모리 사용량이 높은 프로세스를 실시간으로 확인.

top

htop 명령어: top의 개선 버전으로 추가 설치가 필요합니다.

sudo apt install htop
htop

3. 프로세스 종료

kill 명령어: 특정 PID의 프로세스를 종료.

kill -9 PID

killall 명령어: 프로세스 이름으로 종료.

killall 프로세스이름

4. 백그라운드 작업

  • 백그라운드 실행: 명령어 &
  • 백그라운드 작업 목록 확인: jobs
  • 포그라운드로 가져오기: fg %작업번호
  • 다시 백그라운드로 보내기: bg %작업번호
---

프로세스 우선순위와 nice/renice

1. 프로세스 우선순위

리눅스에서는 프로세스 우선순위(priority)를 통해 CPU 사용권을 조절합니다. 우선순위는 -20(가장 높은 우선순위)부터 19(가장 낮은 우선순위)까지 설정됩니다.

2. nice 명령어

새로운 프로세스를 지정된 우선순위로 실행합니다.

nice -n 우선순위 명령어

3. renice 명령어

실행 중인 프로세스의 우선순위를 변경합니다.

renice 우선순위 -p PID
---

좀비 프로세스(Zombie Process)

  • 정의: 부모 프로세스가 종료 상태를 수거하지 않아 남아 있는 프로세스.
  • 확인: ps 명령에서 상태가 Z로 표시.
  • 해결: 부모 프로세스를 종료하거나 시스템을 재부팅.
---

프로세스 제어 신호

신호 번호 이름 설명
1 SIGHUP 프로세스 재시작.
9 SIGKILL 강제 종료.
15 SIGTERM 정상 종료 요청(기본).
19 SIGSTOP 프로세스 일시 중지.
---

데몬 프로세스(Daemon Process)

  • 정의: 시스템에서 백그라운드로 실행되며, 주로 서비스 제공에 사용.
  • 데몬 관리:
    systemctl status 서비스이름
    systemctl start 서비스이름
    systemctl stop 서비스이름
---

프로세스 관련 실전 예제

  • 특정 사용자의 모든 프로세스 종료:
    pkill -u 사용자이름
  • CPU 사용률이 높은 프로세스 확인:
    ps aux --sort=-%cpu | head
  • 메모리 사용률이 높은 프로세스 확인:
    ps aux --sort=-%mem | head
---

리눅스 ps 명령어

ps(Process Status)는 현재 실행 중인 프로세스 상태를 확인하는 명령어입니다. 시스템에서 실행 중인 프로세스의 PID, 사용자, CPU 및 메모리 사용량 등을 확인할 수 있습니다.

기본 사용법

  • 현재 셸에서 실행 중인 프로세스 보기:
    ps
  • 모든 사용자 프로세스 확인:
    ps -e
  • 특정 사용자의 프로세스 보기:
    ps -u 사용자이름

ps 명령의 주요 옵션

옵션 설명
-e 또는 -A 시스템의 모든 프로세스 표시.
-f 풀 포맷 출력(프로세스의 부모/자식 관계 표시).
-u 사용자 특정 사용자의 프로세스만 표시.
-p PID 특정 PID에 해당하는 프로세스만 표시.
--sort=KEY 지정된 키(KEY)를 기준으로 정렬(예: %cpu, %mem).
---

고급 사용법

  • CPU 사용률이 높은 프로세스 확인:
    ps -eo pid,comm,%cpu --sort=-%cpu
  • 프로세스 계층 구조 확인:
    ps -ef --forest

'Linux' 카테고리의 다른 글

우분투 리눅스에서 MariaDB 설치 및 초기 설정  (1) 2025.01.22
리눅스 패키지(apt)과 압축(tar, gz)  (0) 2025.01.22
리눅스 사용자 권한 (chmod, chown, chgrp)  (0) 2025.01.21
리눅스 sudo(superuser do) 와 su(substitute user) 명령어  (1) 2025.01.21
리눅스 사용자 계정  (0) 2025.01.21
'Linux' 카테고리의 다른 글
  • 우분투 리눅스에서 MariaDB 설치 및 초기 설정
  • 리눅스 패키지(apt)과 압축(tar, gz)
  • 리눅스 사용자 권한 (chmod, chown, chgrp)
  • 리눅스 sudo(superuser do) 와 su(substitute user) 명령어
jhyngu
jhyngu
취업하자.
    티스토리 홈
    |
  • jhyngu
    jhyngu
    jhyngu
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • Dev (151)
      • Java (2)
      • Spring (51)
      • Spring Security (39)
        • JWT (22)
        • OAuth2 (17)
      • Kotlin (2)
      • React (6)
      • Coding Test (28)
      • DB (0)
      • Git (5)
      • Linux (14)
      • docker (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Spring
    OAuth2
    git
    Spring Boot
    spring web
    JDBC
    JWT
    oauth2
    Spring Security
    Spring Framework
    JavaScript
    api client
    알고리즘
    Postman
    MariaDB
    react
    mybatis
    Linux
    백준
    MVC
  • hELLO· Designed By정상우.v4.10.3
jhyngu
리눅스 프로세스 관리 (ps, top, kill..)
상단으로

티스토리툴바