如何乙個命令停止某個埠的服務程序 Linux

2021-10-23 04:16:30 字數 2520 閱讀 4007

我們先看看這麼做的過程,把處理方式整理一下,然後才能用程式處理: 

1 netstat -nlp 檢視占用埠號的服務 

2 找到該埠號的程序 

3 找到該程序id 

4 kill它 

程式可以一點一點來: 

1 檢視占用埠號的服務 

(省掉了一些內容) 

2 可以用grep篩選一下,看看規律,找到有 :3306 的一行就好 

用管道符給grep處理: 

[ aliyunzixun@***.com root]# netstat -nlp | grep :3306 

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               listen      23946/ 

既然取出一行了,那就容易了,再篩選一下,用awk分割取出其中乙個 

3 讀取出埠號 

[ aliyunzixun@***.com root]# netstat -nlp | grep :3306 | awk '' 

23946/ 

意思是取第七個字段,這裡預設應該是用tab字元分割的,已經讀取出來了,但是還得拿到/前面的數字 

4 取/前面的數字就可以了,這裡還是可以用awk處理 

[ aliyunzixun@***.com root]# netstat -nlp | grep :3306 | awk '' | awk -f"/" '' 

23946 

意思是用/符號分割,取第一部分 

5 然後把這個數字傳給kill就可以 

kill命令不能跟在管道符後面繼續處理了,會出錯的 

[ aliyunzixun@***.com root]# netstat -nlp | grep :3306 | awk '' | awk -f"/" '' | kill 

kill: usage: kill [-s sigspec | -n signum | -sigspec] [pid | job]... or kill -l [sigspec] 

需要用到"`"操作符,它可以執行乙個語句,這個可以如此執行: 

kill `netstat -nlp | grep :3306 | awk '' | awk -f"/" ''` 

好了,任務完成了,之後貼一下awk的介紹,挺使用的 

當然,有更加精簡的寫法,這裡只是描述思路的實現

**:我們先看看這麼做的過程,把處理方式整理一下,然後才能用程式處理: 

1 netstat -nlp 檢視占用埠號的服務 

2 找到該埠號的程序 

3 找到該程序id 

4 kill它 

如何停止乙個執行緒

停止乙個執行緒的最佳方法是讓它執行完畢,沒有辦法立即停止乙個執行緒,但你可以控制何時或什麼條件下讓他執行完畢。通過條件變數控制線程的執行,執行緒內部檢查變數狀態,外部改變變數值可控制停止執行。為保證執行緒間的即時通訊,需要使用volatile關鍵字或鎖,確保讀執行緒與寫執行緒變數狀態的一致性。pub...

ORACLE如何停止乙個JOB

oracle 如何停止乙個 job dba jobs all jobs user jobs 包含登入使用者所有的 job資訊 dba jobs running 包含正在執行 job相關資訊 注意 須使用oracle 的sys 使用者登入到資料庫,才能檢視 dba jobs running,v pro...

如何優雅的停止乙個執行緒

首先我們先了解下,執行緒是分為使用者執行緒和守護執行緒的,他們的區別就在 使用者執行緒當我們的主線程停止後,使用者執行緒不會隨著主線程停止。守護執行緒當我們的主線程停止後,會跟隨著主線程一起停止。一般我們建立的都是使用者執行緒,那守護執行緒有哪些呢,例如跟程式一起啟動的gc執行緒就是守護執行緒。停止...