셸에 명령을 입력하면 기본적으로 fork를 호출하여 하위 명령이 생성되고, 하위 실행기는 우리가 입력한 명령이므로 상위 명령이 셸이 됩니다. 포그라운드 프로세스인 경우 상위 프로세스(이 경우 쉘)는 하위 프로세스가 종료될 때까지 기다려야 하며, 이를 입력하면 백그라운드에서 실행됩니다. 그렇다면 부모 프로세스가 자식 프로세스가 종료될 때까지 기다리거나 기다리지 않게 만드는 것은 정확히 무엇입니까?
답변1
~처럼에릭 레노프 댓글을 달았습니다., 자신의 코드에서 하위 프로세스를 기다리려면 다음을 사용해야 합니다.wait
함수(일반적으로 시스템 호출 및 C 라이브러리 함수로 구현되므로 섹션 2와 3에서 맨페이지를 찾을 수 있습니다). 링크된 페이지에는 구현 예가 있습니다.
쉘 코드에서 동일한 작업을 수행하려면 다음을 사용할 수 있습니다.wait
백그라운드 작업이 완료될 때까지 기다리는 명령입니다.