🌏 OS/Linux

[Linux] 리눅스 프로세스 관리

heywantodo 2023. 3. 13. 16:47
728x90
반응형

리눅스 프로세스 관리

1. 프로세스의 이해

 

프로세스

  • 현재 메모리 위에서 동작하는 프로그램 => 프로그램마다 프로세스 ID (PID) 부여
  • 동작 중인 프로세스는 ps 명령어로 확인 가능
  • 프로세스는 강제 종료 (kill) 가능 
  • 프로세스를 강제종료 할 수 있는 권한은 root랑 프로세스 소유자만 가능 

 

프로세스 명령어

 

프로세스 목록보기 (ps)

현재 실행중인 프로세스 목록

ps 옵션
  • -e : 시스템에서 실행중인 모든 프로세스의 정보를 출력
  • -f : 프로세스의 자세한 정보 출력
  • -u(uid) : 특정 사용자에 대한 모든 프로세스 정보를 출력
  • -p(pid) : pid로 지정한 특정 프로세스의 정보를 출력
  • -ef : 실행중인 모든 프로세스의 자세한 정보 출력 
항목 의미 항목 의미
UID 프로세스를 실행한 사용자 ID STIME 프로세스의 시작 날짜나 시간
PID 프로세스 번호 TTY 프로세스가 실행된 터미널의 종류와 번호
PPID 부모 프로세스 번호 TIME 프로세스 실행 시간
C CPU 사용량 (%) CMD 실행되고 있는 프로그램 이름(명령)

 

프로세스 목록보기 (pgrep)

특정 프로세스 목록 검색 

pgrep 옵션 패턴
  • -x : 패턴과 정확히 일치하는 프로세스 출력
  • -n : 패턴을 포함하고 있는 가장 최근 프로세스의 정보를 출력
  • -u(user) : 특정 사용자에 대한 모든 프로세스 출력 

 

프로세스 목록보기 (top)

현재 시스템의 상태에 대한 요약 정보 및 통계 제공 (CPU 사용량, 메모리, UID 등과 같은 다양한 기준에 따라 정렬 가능)

 

  • P : CPU 점유율 단위
  • M : memory 점유율 단위
  • ESC : 취소
  • q : 종료
  • k -> pid -> [프로세스] KILL
top 옵션
  • -d (delay-time) : 주어진 시간의 interval을 가짐
  • -b (batch-mode) : batch mode 지원
  • -n (number) : batch mode 실행 시 반복 실행 횟수

 

프로세스 시그널

 

프로세스 종류

 

  • background : command &
  • foreground : command

 

시그널

동작 중인 프로세스에게 전달하는 특정 메시지

 

  • foreground process에게 시그널 전달
    • Ctrl + c, Ctrl + z, Ctrl + d
  • background process에게 시그널 전달
    • kill
시그널 번호 기본처리 의미
SIGHUP 1 종료 터미널과의 연결이 끊어졌을 때 발생
SIGNT 2 종료 인터럽트로 사용자가 Ctrl + c 를 입력하면 발생
SIGQUIT 3 종료, 코어덤프 종료 신호로 사용자가 Ctrl + \ 을 입력하면 발생
SIGKILL 9 종료 무시할 수 없고 강제 종료
SIGALRM 14 종료 알림에 의해 발생
SIGTERM 15 종료 KILL 명령이 보내는 기본 시그널

 

프로세스 종료 (kill)

kill -signal pid | 프로세스 이름
  • -l signal : 리스트 출력
  • -s signal : 주어진 시그널 전달
728x90
반응형