쉘 프로그램에서 exec에 대해 질문합니다.

lovejin0309의 이미지

bash에서 응용 프로그램을 실행시킬때,

예를 들어.

bash # 리눅스용_스타크래프트

라고 실행시키는 것과

bash # exec 리눅스용_스타크래프트

라고 실행시키는 것은 어떤 차이가 있을까요?

monpetit의 이미지

mazikonn의 이미지

lovejin0309 wrote:
bash # 리눅스용_스타크래프트

라고 실행시키는 것과

bash # exec 리눅스용_스타크래프트

라고 실행시키는 것은 어떤 차이가 있을까요?


좀 더 부연 설명을 하자면 전자는 새로운 프로세스를 fork 해서 스타크래프트를 실행하고 후자는 현재 쉘의 프로세스로 스타크래프트를 실행합니다. ps 명령으로 확인해 보면 후자의 경우 쉘의 프로세스 id와 스타크래프트의 프로세스 id가 동일합니다.

一切唯心造