![프로세스를 종료하고 포트 바인딩이 지워졌는지 어떻게 확인할 수 있나요?](https://linux55.com/image/200896/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EC%A2%85%EB%A3%8C%ED%95%98%EA%B3%A0%20%ED%8F%AC%ED%8A%B8%20%EB%B0%94%EC%9D%B8%EB%94%A9%EC%9D%B4%20%EC%A7%80%EC%9B%8C%EC%A1%8C%EB%8A%94%EC%A7%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%99%95%EC%9D%B8%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
프로세스를 종료했는데 다시 시작하면 오류가 발생하는 상황이 발생했습니다 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_LINGER
0으로 설정. 대부분의 경우 이는 올바른 방법이 아닙니다. 특히 소유 프로세스를 실제로 종료하는 경우에는 더욱 그렇습니다.