system 함수로 프로그램 실행 / 종료 후 문제점 질문드립니다.
리눅스에 접한지 얼마되질 않아 많이 생소합니다..
일단 내용은 이러합니다.
A라는 process에서 system 함수로 B라는 process를 생성하고 나서 A 프로그램에서는
socket binding(UDP)이후 데이터 수신을 처리합니다.
또한 B라는 process또한 실행이 되면 하나의 소켓을 생성합니다.
이후에 A,B process가 생성한 포트 정보는 다음과 같습니다.
> netstat -tulpn
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:6001 0.0.0.0:* 3381/A
udp 0 0 0.0.0.0:6002 0.0.0.0:* 3420/B
문제는 이 상태에서 A라는 프로그램을 종료하면 다음과 같이 상태가 변경됩니다.
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:6001 0.0.0.0:* 3420/B
udp 0 0 0.0.0.0:6002 0.0.0.0:* 3420/B
6001번 UDP 포트는 A라는 process가 생성한 것이데 A가 종료되면 사라지지 않고 B process가 점유하고 있는것으로 나타납니다.
아무래도 system 함수를 잘못쓴 문제 인것 같네요..
유사한 경험있으신분 조언 부탁드립니다.
댓글 달기