728x90
프로세스 관련 정보세팅 및 관리 제어하는 방법 apip
Process ID
#include <sys/types.h>
#include <unistd.h>
pid_t getpid(void); // return PID of caller process
pid_t getpgrp(void); // return Process GID of caller
각 process의 id를 얻어오는 system call |
return PID of caller process |
각 process의 group id를 얻어오는 system call |
return Process GID of caller |
Session
- Process group들의 모임
- group은 작업 / Sesseion은 작업 공간
z.B) Terminal에서 shell이 실행이되고 shell에서 process가 실행되면 shell안의 여러개의 process들이 한 Session이 된다.
gourp leder가 있고 group leder의 id를 group id라 한다.
= Session leder, Session id
#include <sys/types.h>
#include <unistd.h>
pid_t getppid(void); // return PID of caller’s parent
현재 process의 부모 process의 id를 얻어오는 system call |
// return PID of caller’s parent |
#include <sys/types.h>
#include <unistd.h>
pid_t getpgid(pid_t tpid);
특정 process의 group id를 얻어오는 system call |
tpid : 특정 procces의 id |
return 특정 group id / -1 |
Process Group Leader
- group id가 group의 leader다
- remorte machine에 logon해서 하나의 terminal을 할당 받으면 shell이 작업공간 생성하고 shell이 group에 sesson leader가 된다.
- Sesseion leader는 작업 group을 묶는다. 그래서 안에 포함된 group에게 특별한 signal을 보낼 수 있는 권한을 가진다.
- Session leader가 종료될 때 session안의 포함된 모든 process에게 SIGHUP이란 signal을 전달 다른 process들도 종료가 된다.
-machine에서 logout하더라도 chlid process가 계속 실행되도록 만드려면 nohup command를 이용해서 SIGHUP signal을 받지 않을 수 있다.
$ nohup command ... &
#include <sys/types.h>
#include <unistd.h>
int setpgid(pid_t pid, pid_t pgid);
자신의 process가 포함된 group id, leader의 id를 setting |
pid : 교차 process id pgid : 교차 process group id |
return 0 / -1 |
pid | pgid | |
0 | 0 | 이것을 실행한 process가 해당 group이 된다. |
0 | x | 현재 불러준 process의 group id를 x로 설정 |
x | 0 | 불러준 process의 group id를 이 x로 설정 |
x | x | pid x의 process가 pid가 속한 그룹의 leader가 되게 만들어 준다. |
x | y | x의 group id를 y로 설정 |
728x90
'시스템 프로그래밍' 카테고리의 다른 글
시스템 프로그래밍 5장 - Process Control : Daemon (0) | 2020.05.05 |
---|---|
시스템 프로그래밍 5장 - Process Control : Process Start & Exit (0) | 2020.05.05 |
시스템 프로그래밍 4장 - Current Process : Multitask - Pipe (0) | 2020.05.05 |
시스템 프로그래밍 4장 - Concurrent Process (0) | 2020.05.05 |
시스템 프로그래밍 3장 - System call : File I/O Permission, ID (0) | 2020.05.05 |