Linux之netstat指令-服務自動化釋出時以此結果為依據停止服務
-
需求:
在停止Linux上一個程序之前,需要該程序無用戶端連接配接,才能停止該服務
比如:
kill -15 pid
,不過這個指令還是不保險
最終還是選擇用linux的netstat指令來實作該功能
-
netstat指令介紹:
文法:
參數說明:netstat [-acCeFghilMnNoprstuvVwx][-A<網絡類型>][--ip]
-a或--all 顯示所有連線中的Socket。 -A<網絡類型>或--<網絡類型> 列出該網絡類型連線中的相關位址。 -c或--continuous 持續列出網絡狀态。 -C或--cache 顯示路由器配置的快取資訊。 -e或--extend 顯示網絡其他相關資訊。 -F或--fib 顯示FIB。 -g或--groups 顯示多重廣播功能群組組員名單。 -h或--help 線上幫助。 -i或--interfaces 顯示網絡界面資訊表單。 -l或--listening 顯示監控中的伺服器的Socket。 -M或--masquerade 顯示僞裝的網絡連線。 -n或--numeric 直接使用IP位址,而不通過域名伺服器。 -N或--netlink或--symbolic 顯示網絡硬體外圍裝置的符号連接配接名稱。 -o或--timers 顯示計時器。 -p或--programs 顯示正在使用Socket的程式識别碼和程式名稱。 -r或--route 顯示Routing Table。 -s或--statistice 顯示網絡工作資訊統計表。 -t或--tcp 顯示TCP傳輸協定的連線狀況。 -u或--udp 顯示UDP傳輸協定的連線狀況。 -v或--verbose 顯示指令執行過程。 -V或--version 顯示版本資訊。 -w或--raw 顯示RAW傳輸協定的連線狀況。 -x或--unix 此參數的效果和指定"-A unix"參數相同。 --ip或--inet 此參數的效果和指定"-A inet"參數相同。
參考菜鳥教程
在此處我們用到的指令:
如下圖所示,顯示所有的socket連接配接以及連接配接的用戶端資訊: 沒有連接配接的情況:netstat -an | grep PORT
- 我們利用這個指令 結合 wc(root) 和 awk指令 擷取到目前端口的用戶端連接配接數,指令如下:
無用戶端連接配接情況: 有用戶端連接配接情況: 借此我們可以拿到這個用戶端連接配接數,來做服務自動化釋出時的是否可以停止服務的條件netstat -an | grep 7778 |wc | awk '{print $1}'
github