반응형
리눅스로 프로세스를 생성하는 방법에는 fork 와 exec 가 있다.
exec의 경우 - 자신을 변화 시킨다!
프로세스 PID는 같으나 프로그램이 변한다
fork의 경우 - 자식 프로세스를 만든다!
똑같은 프로그램을 실행시키는데 프로세스가 두 개로 나뉜다
여기서 부모 프로세스 자식 프로세스로 나뉘게 되는데
자식 프로세스는 PID가 다르다.
예를 들어 로그인 프로세스인 mingetty의 활동 상태를 살펴 보면
로그인 전 프롬프트 화면에 "hostname login : "라고 처음으로 보일 것 인데
mingetty의 ps라고 생각하자 여기서 로그인 성공시 exec가 일어나서 로그인이 된다
이 경우 PID는 그대로 이면서 실행 프로그램만 바뀌게 되고 로그인이 일어난 후
자식 ps인 -bash도 만들게 되는데 이 부분에선 fork가 일어난 것이다
위에 사진은 tty2에 로그인 하기 전과 그 이후에 상태이다.
그리고 tty2터미널에서 로그아웃 한 상태
기존에 pid가 없어지고 새로운 pid가 생긴걸로 봐서 새로운 ps가 할당된거 같다.
반응형