반응형
리눅스의 모든 프로세스는 아래와 같은 ID를 가지고 있다. 각 ID가 의미는 아래와 같다.
1. 개요
Process ID (PID)
프로세스를 구별하는 임의의 숫자인다. 모든 프로세스는 고유한 ID를 가지고 있다. 그러나 프로세스가 종료(exit)하고 부모 프로세스가 종료를 인지했을 때, 다른 프로세스가 해당 프로세스 ID를 사용할 수 있도록 되는 것이다.Parent Process ID (PPID)
해당 프로세스를 시작시킨 프로세스의 PID(부모 프로세스 ID)이다.Process Group ID (PGID)
프로세스 그룹 리더의 PID이다. PID와 PGID가 같다면, 해당 프로세스를 프로세스 그룹 리더라고 한다.Session ID (SID)
세션 리더의 PID이다. PID와 SID가 같다면, 해당 프로세스를 세션 리더라고 한다.
2. 특징
세션과 프로세스 그룹은 어떠한 단위로서 관련된 프로세스의 묶음이라고 볼수 있다.
모든 프로세스 그룹에 멤버 프로세스는 동일한 세션에 속하지만, 세션은 복 수개의 프로세스 그룹을 가질 수 있다.
일반적으로 쉘(shell)이 세션 리더이고, 모든 파이프라인은 동일한 프로세스 그룹이고 쉘에 의해 수행된다.
3. 예시 화면
Process Group Leader
Session Group Leader
4. 프로세스 ID 관련 시스템 콜
- pid_t setsid(void) - 새로운 세션을 생성
- pid_t getsid(pid_t pid) - pid가 가리키는 프로세스의 세션 ID를 반환
- int setpgid(pid_t pid, pid_t pgid) - pid 인자로 지정한 프로세스의 프로세스 그룹 ID를 pgid로 설정
- pid_t getpid(pid_t pid) - 프로세스의 프로세스 그룹 ID를 반환
[그림 출처] http://www.geekpills.com/operating-system/linux/the-ultimate-pid-ppid-pgid-process-group-leader-sid-session-leader
'OS > LINUX' 카테고리의 다른 글
[명령어] more 설명 (0) | 2016.10.17 |
---|---|
[툴] ctags 사용법 (0) | 2016.09.27 |
[명령어] sar 설명 (0) | 2016.09.17 |
[명령어] iostat 설명 (0) | 2016.09.06 |
[명령어] mpstat 설명 (0) | 2016.08.31 |