프로세스를 종료했는데 다시 시작하면 오류가 발생하는 상황이 발생했습니다 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으로 설정. 대부분의 경우 이는 올바른 방법이 아닙니다. 특히 소유 프로세스를 실제로 종료하는 경우에는 더욱 그렇습니다.