IT
[Linux] CLOSE_WAIT 상태의 TCP Kill하기
라이꼬끼
2021. 11. 30. 04:26
CLOSE_WAIT 상태인 TCP Connection이 많다면, 내 프로그램에 문제가 있다는 것을 뜻한다.
참고로 Open 된 커넥션 확인은 lsof를 사용하면 된다. https 커넥션 얼마나 열려있나 확인하는 방법:
lsof -i :443
재부팅하면 커넥션이 다 사라지긴 하겠지만, 이것은 임시방편이고, 원인이 무엇인지 조사를 해줘야 한다.
그리고 재부팅이 좋은 방법이 아니라고 판단되면 그냥 직접 명령어를 쳐서 Kill 해주면 된다.
# IP 주소 정보 (123.4.56.789 예시) 로 kill
$ netstat -anp |\
grep 123.4.56.789 |\
grep CLOSE_WAIT |\
awk '{print $7}' |\
cut -d \/ -f1 |\ # PID 추출하는 과정
grep -oE "[[:digit:]]{1,}" |\ # PID 추출하는 과정
xargs kill # 추출한 PID로 kill
# Port 넘버 정보 (80 예시) 로 kill
$ netstat -anp |\
grep ':80 ' |\
grep CLOSE_WAIT |\
awk '{print $7}' |\
cut -d \/ -f1 |\
grep -oE "[[:digit:]]{1,}" |\
xargs kill
# 두 정보 모두 조건으로 하여 kill
$ netstat -anp |\
grep 123.4.56.789 |\
grep ':80 ' |\
grep CLOSE_WAIT |\
# ... 이하 4줄 동일
Ref: http://kb.ictbanking.net/article.php?id=477&oid=2