signal handler1 [정보] C++ SIGCHLD, waitpid()에 관해서 안녕하세요. 오두막입니다. 프로세스 종료 및 재구동 등을 테스트하다가 알게된 정보에 대해서 전달드립니다. 부모프로세스에서 자식프로세스를 여러개 만들어서 처리를 하다가 자식프로세스가 종료되면 부모프로세스에 SIGCHLD가 전달됩니다. 그래서 SIGCHLD 시그널을 받고 처리를 하게 되는데, 자식프로세스가 여러개이고 여러 자식프로세스가 동시에 종료가 되면 종료된 수만큼 SIGCHLD가 발생하지 않는걸 알게됐습니다. 검색을 해보니, SIGCHLD의 경우 여러 번 발생하면 하나로 축소되는 신호이므로 waitpid()를 여러번 수행 필요하다는걸 알게됐습니다. 그래서 기존에는 한번에 SIGNAL마다 wait()함수를 사용하여 한번씩 처리했지만, 아래 코드와 같이 waitpid() 함수를 사용하여 처리하도록 변경했습.. 2021. 11. 26. 이전 1 다음