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 |