프로세스 관리

한준수·2023년 6월 6일

Linux

목록 보기
1/10
post-thumbnail

프로세스의 개념

프로세스란 현재 시스템에서 실행중인 프로그램을 뜻한다.

프로세스의 부모-자식 관계

프로세스는 부모-자식 관계를 가지고 있는데, 필요에 따라 부모 프로세스 (Parent Process)는 자식 프로세스(Child Process)를 생성하고 자식 프로세스는 또 다른 자식 프로세스를 생성 가능하다.

트리구조를 뜻하는 듯 하다.

프로세스의 번호 - PID

  • 각 프로세스는 고유한 번호를 가지고 있는데 이것을 PID라고한다.

프로세스의 종류

데몬 프로세스

특정 서비스를 제공하기 위해 존재하며 리눅스 커널에 의해 실행된다.

고아(Orphan) 프로세스

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

좀비 프로세스

  • 자식 프로세스가 실행을 종료했는데도 프로세스 테이블 목록에 남아 있는 경우
  • 좀비 프로세스가 증가하면 프로세스 테이블의 용량이 부족해서 일반 프로세스가 실행되지 않을 수도 있다.

현재 실행중인 프로세스 목록보기 - PS

유닉스 옵션

묶어서 사용할 수 있고, 붙임표로 시작한다.(예 : -ef)

  • -e : 시스템에서 실행 중인 모든 프로세스의 정보를 출력
  • -f : 프로세스의 자세한 정보를 출력함
  • -u uid : 특정 사용자에 대한 모든 프로세스 정보를 출력
  • -p pid : pid로 지정한 특정 프로세스의 정보를 출력

BSD 옵션

묶어서 사용할 수 있고 붙임표로 시작하지 않음(예 : aux)

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

GNU 옵션

붙임표 두 개로 시작함(예 : --pid)

  • --pid PID 목록 : 목록으로 지정한 특정 PID정보를 출력

아래 옵션은 자주 사용하니 외워두자

#시스템에서 실행 중인 전체 프로세스의 더 자세한 정보를 출력
ps -ef | more

ps aux

#ps 명령을 이용해 특정 프로세스 정보 검색하기
ps -ef | grep bash

pgrep 명령을 이용한 프로세스 정보 검색

pgrep 명령은 지정한 패턴과 일치하는 프로세스의 정보를 출력함.

형식

pgrep [옵션] 패턴

옵션

  • -x : 패턴과 정확히 일치하는 프로세스의 정보를 출력
  • -n : 패턴을 포함하고 있는 가장 최근 프로세스의 정보를 출력
  • -u 사용자명 : 특정 사용자에 대한 모든 프로세스를 출력
  • -l : PID와 프로세스 이름을 출력
  • -t term : 특정 단말기와 관련된 프로세스의 정보를 출력

bash 패턴을 지정하여 검색한 예시

pgrep -x bash

기말고사엔 안나올거라고 하셨다.


시그널 (signal)

프로세스에 무언가 발생했음을 알리는 간단한 메시지이다.

리눅스에서 지원하는 시그널의 목록은 kill -l 명령으로 알 수 있다.

자주 사용되는 시그널

시그널 번호 기본 처리 의미
SIGHUP 1 종료 터미널과의 연결이 끊어졌을때 발생
SIGINT 2 종료 인터럽트로 사용자가 Ctrl+c를 입력하면 발생
SIGQUIT 3 종료, 코어덤프 종료 신호로 사용자가 Ctrl+\를 입력하면 발생
SIGKILL 9 종료 강제 종료
SIGALRM 14 종료 알람에 의해 발생
SIGTERM 15 종료 kill 명령이 보내는 기본 시그널

프로세스 강제 종료는 꼭 외워두자

kill -9 프로세스ID

프로세스 관리도구 top

top 명령은 현재 실행 중인 프로세스에 대한 정보를 주기적으로 출력해준다.

0개의 댓글