프로세스를 종료하고 포트 바인딩이 지워졌는지 어떻게 확인할 수 있나요?

프로세스를 종료하고 포트 바인딩이 지워졌는지 어떻게 확인할 수 있나요?

프로세스를 종료했는데 다시 시작하면 오류가 발생하는 상황이 발생했습니다 Address already in use.

sudo netstat -lntp프로세스 ID를 얻기 위해 실행 중인데 다음과 같은 결과가 반환됩니다.

tcp        0      0 0.0.0.0:8002            0.0.0.0:*               LISTEN       475/valhalla_servic

그럼 난 달려sudo kill -9 475

이 명령을 실행한 후 netstat프로세스가 더 이상 표시되지 않지만 다시 시작하려고 하면 "이미 사용 중인 주소" 오류가 표시됩니다. 제가 뭘 잘못하고 있는지 잘 모르겠습니다.

답변1

내가 뭘 잘못하고 있는지 잘 모르겠나요?

좋은 소식: 아무것도 없습니다.

TCP 상태 머신에는 시간 초과 조건이 있습니다. 따라서 기본적으로 포트는 잠시 동안 유지됩니다.

일부 소프트웨어의 사용자로서 할 수 있는 일은 많지 않습니다. 임의의 소프트웨어가 즉시 포트를 리바인딩하지 못하게 하는 것은 궁극적으로 보안 기능입니다.

소프트웨어 개발자로서 당신은 할 수 있습니다SO_LINGER0으로 설정. 대부분의 경우 이는 올바른 방법이 아닙니다. 특히 소유 프로세스를 실제로 종료하는 경우에는 더욱 그렇습니다.

관련 정보