본문 바로가기

서버/Linux

[Linux 기초] Process

Process


- 실행 중인 프로그램을 의미함.

- 하드(Disk)에 저장된 프로그램을 실행하면, 메모리에 프로세스가 올라가게 됨

- CPU가 프로세스들을 실행함으로써 어플리케이션이 동작

 

- CPU가 다양한 프로세스들을 번갈아가며 실행을 시켜 준다.

- CPU 코어 클럭이 높으면 성능이 더 좋으나, 그 만큼 발열이 올라가서 이슈가 발생할 수 있다

- 그래서 요즘은 코어 수가 더 각광을 받는다.

- 여러 코어가 각각의 프로세스들을 나눠서 실행한다면 지연없이 처리가 가능하다

 

- 프로세스들은 종속관계에 따라 부모와 자식 프로세스가 있다

- 부모 프로세스가 자식 프로세스를 종료 처리를 진행하면, 그 과정에서 부모 프로세스에게 종료 상태 정보를 넘겨 준다.

- 상태 정보는 정상 종료 여부, 시그널을 받아 종료 되었는지의 여부 및 시그널 종류, 코어 덤프 생성 여부

- 부모 프로세스가 자식 프로세스를 종료 시켜주지 않고 먼저 종료가 된 경우, 고아 프로세스 혹은 좀비 프로세스가 발생함

 


Daemon Process


- 보이지 않은 곳에서 어떤 일을 하는 유령과 같다고 데몬이라고 명칭

- 보통 PPID가 1이고, 프로세스 명이 d로 끝나는 친구들이 보통 데몬임.

- 백그라운드에서만 동작하기 위한 목적인 프로세스

- 표준 스트림과 부모 프로세스를 갖고 있지만, 스트림을 모두 닫아버리고 부모 프로세스를 init 프로세스로 변경

  (눈 닫고 귀 닫고 어둠의 자식이 되버림)

- 사용자의 입력이 프로세스로 전달 되지 않음.(표준 스트림이 안되서)

- 그래서 자체적으로 동작하거나 모니터링 목적으로 동작함

 

 


Signal


- 비동기(Asynchronous) 이벤트를 처리하기 위한 프로세스 to 프로세스 통신(IPC)

- 동기 방식은 Request를 보내고, Response가 올때까지 기다림

- 비동기 방식은 Request를 보내고, Response를 기다리지 않고 무언가를 하다가 Response를 받은 후 처리

  (딴짓 하다가 어어어 하면서 처리함)

- 시그널의 종류는 정해져 있음 (kill -l로 확인 가능)

 

- 보통은 SIGKILL(9번)이라는 시그널을 통해 프로세스를 죽이는 것을 많이 함 (kill -9 [process명])

- 각각의 시그널에 따라 크래쉬 로그와 같은 코어덤프를 남기거나 정지, 종료, 무시 등 처리를 할 수 있음

 

 


ps -ef


ps는 프로세스를 확인 할 수 있는 커맨드

우리가 확인하고자 하는 모든 프로세스의 모든 항목들을 확인하기 위해선 보통 -ef 옵션을 붙여 사용한다

e와 f의 옵션값은 무엇을 의미할까?

--help로 보면 정보가 없어서 man 명령어를 통해 확인해보자

 

 

UID(User ID), PID(Process ID), PPID(Parent Process ID), STIME(Start TIME) 등등 값들을 확인 할 수 있드아

 

'서버 > Linux' 카테고리의 다른 글

[Linux] Bash 스크립트 _02.비교  (0) 2023.03.14
[Linux] Bash 스크립트_01.기초  (0) 2023.03.14
[Linux 기초] 스크립트  (0) 2023.02.11
[Linux 기초] User & Group 생성  (0) 2023.02.11
[Linux 기초] 파일 소유권, 권한  (0) 2023.01.20