본문 바로가기

Linux

29. CentOS7 : Process - ps, kill / w

1. Process

현재 시스템에서 실행 중인 프로그램을 의미

  • App이 실행되어 Memory에 load 된 상태
  • Memory와 HDD의 속도 차이는 약 1,000배

1.1. 부모-자식 관계

  • 리눅스에서 모든 프로세스는 부모-자식 관계를 가지고 있다.
  • 리눅스 시스템을 부팅할 때 스케줄러가 실행한 프로세스인 systemd와 kthreadd 프로세스를 제외한 모든 프로세스는 부모 프로세스가 존재한다.

1.2. 프로세스 번호

각 프로세스는 고유한 번호를 가지고 있으며 이를 PID라고 한다.

  • PID는 1번부터 시작하며, 프로세스가 실행되면서 하나씩 증가하여 부여된다.
  • 리눅스 부팅 시 PID 1번 systemd 프로세스와 2번 kthreadd 프로세스가 차례로 실행된다.

1.3. 프로세스의 종류

데몬 프로세스

  • 특정 서비스를 제공하기 위해 존재하며, 리눅스 커널에 의해 실행된다.
  • 평소에는 대기 상태로 있다가 서비스 요청이 들어오면 서비스를 제공

고아 프로세스

  • 자식 프로세스가 아직 실행 중인데 부모 프로세스가 먼저 종료된 프로세스

좀비 프로세스

  • 자식 프로세스가 실행을 종료했는데도 프로세스 테이블 목록에 남아있는 경우

2. 명령어

2.1. ps

현재 실행 중인 프로세스의 정보를 출력

 

형식

  • ps [옵션]

옵션

  • -e : 시스템에서 실행 중인 모든 프로세스의 정보를 출력
  • -f : 프로세스의 자세한 정보 출력
  • a :  터미널에서 실행한 프로세스의 정보 출력
  • u : 프로세스의 소유자 이름, CPU 사용량, 메모리 사용량 등 상세 정보 출력
  • x : 시스템에서 실행 중인 모든 프로세스의 정보 출력

 

2.2. kill

지정한 시그널을 프로세스에 보냄

 

형식

  • kill [-시그널] PID

옵션

  • -l : 시그널 목록 출력
  • 2 : 인터럽트 시그널을 보냄 (ctrl+c)
  • 9 : 프로세스 강제 종료
  • 15 : 프로세스와 관련된 파일 정리 후 종료 (종료되지 않는 프로세스가 있을 수 있음)
  • 18 : 프로세스 재개
  • 19 : 프로세스 멈춤

 

2.3. 로그인한 사용자 정보 출력

형식

  • w

 

  • TTY: 콘솔 접속/로그인(마우스, 키보드, 모니터를 이용하여 접속)
  • pts: 원격 접속/로그인

 

3. 실습

3.1. 명령어 실습

※ kill 시그널 목록 출력

 

 프로세스 확인 및 강제 종료 (kill -9 PID)

 

 

 

 프로세스 멈춤 (kill -19 PID)

 

 

※ 프로세스 재개 (kill -18 PID)

 

 

※ 로그인한 사용자 정보 출력

 

3.2. 팀별 실습

※ 로그인한 사용자 정보 출력

  • 팀원들이 접속 중인 것 확인
  • 접속한 팀원의 Host PC IP가 정상적으로 출력되는지 확인한다.

 

외부에서 접속하여 프로세스 실행 (팀원 Host PC)

 

실행 중인 프로세스 확인

 

실행 중인 프로세스 강제 종료

 

프로세스 정상적으로 종료되었는지 확인

 

프로세스 확인 후 프로세스 멈춤

 

프로세스 stop 확인 (팀원 Host PC)

 

프로세스 재개

 

프로세스가 다시 실행되는지 확인 (팀원 Host PC)

 

프로세스 강제 종료

 

프로세스 종료 확인 (팀원 Host PC)