清除陷入CLOSE WAIT的程序

2021-09-01 04:38:32 字數 516 閱讀 2433

清除陷入close_wait的程序,而不清除父程序的方法,理論上來說是可行的,但是有可能引起相關元件不能正確顯示狀態資料。比如,使用apache+mod_jk的情況,殺掉相應程序後,mod_jk的狀態監控不能正確顯示當前apache和tomcat之間的連線數。

具體做法,就是先用netstat命令列出在close_wait的程序號,然後殺掉這些程序。可以用一條命令完成。

netstat -nap |grep :8009|grep close_wait | awk ''|awk -f"\/" '' |awk '!a[$1]++'  |xargs kill

解釋一下:

使用netstat列出所有埠資訊,包含程序資訊,

過濾出8009埠的,

過濾出出狀態是close_wait的,

取結果的第7列,就是程序資訊,格式是這樣的12568/httpd,

所以要去掉 /httpd 這部分,只留下程序號,

然後去掉重複的程序號,

最後用xargs帶入kill命令殺掉相應的程序。

close wait生成的原因

close wait狀態的生成原因 首先我們知道,如果我們的client程式處於close wait狀態的話,說明套接字是被動關閉的!因為如果是server端主動斷掉當前連線的話,那麼雙方關閉這個tcp連線共需要四個packet server fin client server ack client...

CLOSE WAIT狀態的生成原因

關閉socket分為主動關閉 active closure 和被動關閉 passive closure 兩種情況。前者是指有本地主機主動發起的關閉 而後者則是指本地主機檢測到遠端主機發起關閉之後,作出回應,從而關閉整個連線。其狀態圖如下圖所示 起初每個socket都是closed狀態,當客戶端初使化...

CLOSE WAIT狀態的生成原因

close wait狀態的生成原因 首先我們知道,如果我們的client程式處於close wait狀態的話,說明套接字是被動關閉的!因為如果是server端主動斷掉當前連線的話,那麼雙方關閉這個tcp連線共需要四個packet server fin client server ack client...