문제
다음은 기존의 프로세스를 교체하면서 새로운 프로세스를 발생시키는 과정이다. ( 괄호 ) 안에 들어갈 내용으로 알맞은 것은?
① exec ② fork ③ nohup ④ watch
정답
1번
해설
정답: 1. exec 는 현재 셸(프로세스)을 새 프로그램으로 "교체"하여 실행하는 명령이다. 새 프로세스를 따로 만들지 않고 기존 프로세스 자리를 덮어쓰므로 "교체하면서 발생"이라는 설명에 부합한다. 즉 "exec ps -l".
오답 풀이
- 1번: 기존 프로세스를 새 프로그램으로 교체하는 exec 로 옳다.
- 2번: fork 는 부모를 복제해 "자식 프로세스를 추가로" 만드는 방식이라 교체가 아니다.
- 3번: nohup 은 로그아웃 후에도 프로세스가 계속 실행되도록 하는 명령으로 교체와 무관하다.
- 4번: watch 는 명령을 주기적으로 반복 실행해 결과를 보여 주는 명령이다.
보충 개념 fork 는 프로세스를 복제(자식 생성), exec 는 현재 프로세스 이미지를 새 프로그램으로 교체한다. 유닉스 프로세스 생성의 기본 패턴은 fork 후 자식에서 exec 하는 것이다.