정말 해당 포트가 listen 중인지 확인을 하시구요. (netstat -an)
만약 listen 이라면 어떤 프로세스가 잡고 있는지 아실 수 있을 겁니다.
(netstat -p 옵션, lsof, fuser 등등으로요.)
listen 이 아닌 경우에도 TIME_WAIT 상태이면 setsockopt() 를 쓰지 않으면
TIME_WAIT인 동안 해당 port를 사용하실 수 없습니다. 요건 서버의 구현 문제죠.
TIME_WAIT 의 시간을 기본 시간에서 줄일 수도 있습니다만, 요건 별로 좋은 방
법은 아닌것 같네요. (/proc/sys/net/ipv4/tcp_fin_timeout)
결론은 서버의 재시작 불가의 원인이.
listen 중이어서 라면 해당 하는 pid 를 알아내어 그 프로세스를 죽인다.
time_wait 상태이어서 잠시 재시작이 불가하면 구현을 다시 하시던지. 혹은
다른 방법을 강구해 보셔야 겠죠. (TIME_WAIT 이 되는 원인도 살펴보시고요.
정상적인 tcp state machine 에서는 fin 쪽으로 가야죠..)
: : /etc/services 안에서 열어봐서
: : 해당 포트부분 주석처리 해주세여..
: : 글구 해당 포트를 쓰고있는 프로세서의 pid 알아내서
: : 강제루 살살 죽여버리세여
: : *^^*
:
: 답변감사합니다.
:
: 제가 운영하고 있는 프로그램은 제가 5000번 포트를 부여하고
: 불특정 다수의 Client로 부터 서비스를 해주고 있습니다.
: 즉 OS에서 제공하는 서비스가 아니라 /etc/services 에는 없습니다.
:
: 그리고 ps -ef|grep tcs 이렇게 해도 프로세스가 안잡히네요.--껌을 씹을 때는 조용히...