%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
아래와 같이 포트 6060에서 lsof를 실행하면
# lsof -i TCP:6060 | more
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
app_lot 3495 root 12u IPv6 9238779 1t0 TCP *:krb0934 (LISTEN)
app_lot 3495 root 13u IPv6 9208460 1t0 TCP linux_server45:krb0934->43.55.3.22:5992 (CLOSE_WAIT)
app_lot 3495 root 21u IPv6 9402392 1t0 TCP linux_server45:krb0934->34.22.50.28:6005 (CLOSE_WAIT)
app_lot 3495 root 28u IPv6 9208462 0t0 TCP linux_server45:krb0934->54.33.6.161:23096 (CLOSE_WAIT)
기다리는 사람들이 많이 보이던데,
우리는 pid를 죽이고 싶지 않습니다 - 3495
강제 종료(CLOSE_WAIT)가 가능합니까?
애플리케이션을 다시 시작할 필요가 없습니다 - app_lot
답변1
CLOSE_WAIT
이 상태(또는 다른 상태)의 소켓은 외부적으로 닫힐 수 없습니다 . 오작동하는 프로그램이 CLOSE_WAIT
연결을 축적하는 경우 이를 해제하는 유일한 방법은 해당 프로그램을 종료하는 것입니다.
이는 애플리케이션의 버그이며 가장 좋은 해결책은 이를 수정하는 것입니다. (이것이 가능하거나 현실적이라는 말은 아닙니다.) 또는 디버거를 사용하여 연결하고 디버거 연결을 닫을 수도 있습니다.