[리눅스 프로세스 관리] ps와 kill 명령어 + 시그널까지 한 번에 정리하기

2025. 5. 28. 12:25·linux
728x90
반응형

리눅스에서 프로세스를 다룰 줄 아는 건 운영/개발 모두에게 필수 스킬이다.
서버가 느려졌을 때, 특정 프로그램이 멈췄을 때, 예상치 못한 상황을 처리하려면 프로세스 조회 → 종료 → 디버깅까지 이어지는 기본 명령어를 잘 다뤄야 한다.

이번 글에서는 프로세스 관리의 대표 명령어인 ps, kill, 그리고 signal까지
풀네임 설명과 함께 실습 위주로 정리해본다.


ps – 프로세스 상태 보기 (Process Status)

ps [옵션]

ps는 현재 실행 중인 프로세스 목록을 출력해주는 명령어다.

자주 쓰는 옵션 정리

옵션 풀네임 의미 설명
-e 또는 -A every process / All 시스템 전체 프로세스
-f full 상세 정보 보기
-u [user] user 해당 사용자의 프로세스만
-x eXternal 터미널 없는 프로세스도 포함
-o output format 원하는 항목만 출력

예시

ps -ef

→ 전체 프로세스를 풀 포맷으로 출력

ps aux

→ BSD 스타일, CPU/메모리 사용률 포함

ps -u ubuntu

→ ubuntu 사용자의 프로세스만 출력

ps -eo pid,comm,%cpu,%mem --sort=-%cpu

→ CPU 사용률 기준 정렬 (가장 많이 쓰는 프로세스 확인)


kill – 프로세스 종료 또는 시그널 보내기

kill [옵션] PID

kill은 단순히 프로세스를 죽이는 명령이 아니다.
사실은 프로세스에게 "시그널(Signal)"을 보내는 명령어다.

기본 사용 예

kill 1234         # 기본은 SIGTERM (15)
kill -9 1234      # SIGKILL - 강제 종료
kill -SIGSTOP 1234  # 프로세스 일시 정지

kill은 kill -SIGNAL PID 또는 kill -번호 PID 두 가지 방식으로 사용 가능

주요 시그널

시그널 번호 설명
SIGHUP 1 터미널 종료 감지, 데몬 재시작에 사용
SIGINT 2 인터럽트 Ctrl + C
SIGQUIT 3 종료 + core dump (Ctrl + )
SIGKILL 9 강제 종료 (무시 불가)
SIGTERM 15 정상 종료 요청 (기본 종료)
SIGSTOP 19 프로세스 정지 (Ctrl + Z와 유사)
SIGCONT 18 정지된 프로세스 재개
kill -l

→ 시스템에서 지원하는 전체 시그널 목록 확인 가능


top – 실시간 프로세스 모니터링

top은 실시간으로 시스템 리소스를 모니터링할 수 있는 명령어로,
CPU, 메모리 사용률, 실행 시간, 프로세스 우선순위 등을 한눈에 볼 수 있다.

top

top 주요 단축키

단축키 설명
P CPU 사용률 기준 정렬
M 메모리 사용률 기준 정렬
k 프로세스 종료 (PID 입력 + Enter)
r 프로세스 우선순위(nice 값) 변경
u 특정 사용자 필터
q 종료

k 키를 눌러도 내부적으로 kill 명령을 수행하며, 기본은 SIGTERM, 필요 시 9 입력으로 SIGKILL

기본 화면 구성

  • 🔸 첫 줄: 시스템 전체 상태 (uptime, load average)
  • 🔸 중간: CPU/메모리 사용량
  • 🔸 아래: 프로세스 목록 (PID, USER, %CPU, %MEM 등)

마무리

ps와 kill만으로도 프로세스를 확인하고 제어하는 기본적인 능력을 갖출 수 있다.
여기에 시그널을 잘 조합하면 정지-재개-종료-리로드까지 세밀한 제어가 가능하다.
실무에서는 kill -9만 남발하지 말고, SIGTERM → SIGKILL 순서로 점진적으로 시도하는 게 좋다.

728x90
반응형

'linux' 카테고리의 다른 글

[리눅스 inode] ln 명령어 하드링크 vs 심볼릭링크  (0) 2025.05.29
[리눅스 디스크 관리] linux disk 파티션, mount  (1) 2025.05.28
[리눅스 명령어] linux tar 명령어 – 압축 및 해제  (0) 2025.05.28
[리눅스 권한 명령어 정리] chmod, chown, umask  (0) 2025.05.27
[리눅스 유저 & 그룹 관리] useradd, usermod, passwd, groupadd  (0) 2025.05.26
'linux' 카테고리의 다른 글
  • [리눅스 inode] ln 명령어 하드링크 vs 심볼릭링크
  • [리눅스 디스크 관리] linux disk 파티션, mount
  • [리눅스 명령어] linux tar 명령어 – 압축 및 해제
  • [리눅스 권한 명령어 정리] chmod, chown, umask
highgarden
highgarden
커밋 하나하나가 쌓여 커다란 정원이 되는 중입니다. 하루하루 정성껏 심어가는 중 https://github.com/highgarden7
  • highgarden
    커밋심는 정원
    highgarden
  • 전체
    오늘
    어제
    • 분류 전체보기 (37)
      • ai (1)
      • devops (2)
      • Nest.js (14)
      • linux (14)
      • 네트워크 (6)
      • git (0)
      • aws (0)
      • docker (0)
  • 블로그 메뉴

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

    • github
  • 공지사항

  • 인기 글

  • 태그

    E2E
    githib action
    Java
    vercel
    Linux
    springboot
    nestjs
    IP
    네트워크
    Chat GPT
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
highgarden
[리눅스 프로세스 관리] ps와 kill 명령어 + 시그널까지 한 번에 정리하기
상단으로

티스토리툴바