1. 程式人生 > >如何一個命令停止某個埠的服務程序

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

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

1 netstat -nlp 檢視佔用埠號的服務
2 找到該埠號的程序
3 找到該程序id
4 kill它

程式可以一點一點來:

1 檢視佔用埠號的服務

[[email protected] root]# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      23946/              
tcp        0      0 0.0.0.0:3307            0.0.0.0:*               LISTEN      12711/              
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3936/httpd         
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      3910/              
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3753/sshd         
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      3786/              
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
unix  2      [ ACC ]     STREAM     LISTENING     827412 23946/              /tmp/mysql.sock
unix  2      [ ACC ]     STREAM     LISTENING     733272 12711/              ./mysql.sock


(省掉了一些內容)

2 可以用grep篩選一下,看看規律,找到有 :3306 的一行就好
用管道符給grep處理:

[
[email protected]
root]# netstat -nlp | grep :3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      23946/


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

3 讀取出埠號

[[email protected] root]# netstat -nlp | grep :3306 | awk '{print $7}'
23946/


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

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

[
[email protected]
root]# netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }'
23946


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

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

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

[[email protected] root]# netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }' | kill
kill: usage: kill [-s sigspec | -n signum | -sigspec] [pid | job]... or kill -l [sigspec]


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

kill `netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }'`


好了,任務完成了,之後貼一下awk的介紹,挺使用的
當然,有更加精簡的寫法,這裡只是描述思路的實現

相關推薦

如何一個命令停止某個服務程序-Linux

我們先看看這麼做的過程,把處理方式整理一下,然後才能用程式處理:  1 netstat -nlp 檢視佔用埠號的服務  2 找到該埠號的程序  3 找到該程序id  4 kill它  程式可以一點一點來:  1 檢視佔用埠號的服務&nb

如何一個命令停止某個服務程序

我們先看看這麼做的過程,把處理方式整理一下,然後才能用程式處理: 1 netstat -nlp 檢視佔用埠號的服務 2 找到該埠號的程序 3 找到該程序id 4 kill它 程式可以一點一點來: 1 檢視佔用埠號的服務 [[email protected] roo

Windows中殺死佔用某個程序

第一步 根據埠號查詢對應的程序號 netstat -ano | findstr 80 //列出程序極其佔用的埠,且包含 80 1 結果如下:  發現 8080 埠被 PID(程序號)為 9268 的程序佔用。 第二步 據程序號尋找程序名稱 tasklist | fi

一個批量停止和啟動服務的工具

    寫了一個工具,目的是批量停止和啟動,服務以及程序;沒做完;全部程式碼和可執行檔案在此處;有人有興趣可下載了接著實現;做好後發一份給我; http://pan.baidu.com/s/1i37qQUh     從服務列表中選中要停止的服務,單擊 新增 按鈕,加入到

lsof/netstat命令一個重要作用: 根據程序, 根據程序

  我們知道, 根據ps -aux | grep xxx就是很快實現程序名和程序號的互查, 所以我們只說程序號pid就行。 如下示例中, 程序pid常駐。         1.  根據程序pid查埠:       &

檢視區域網內某個ip地址對應的mac地址以及開啟的網路服務命令

nmap -sS 192.168.1.101 Starting Nmap 5.00 ( http://nmap.org ) at 2012-04-25 09:16 CST Interesting ports on 192.168.1.101: Not shown: 997

http-server:一個簡單的零配置命令行的http服務

.gz 例如 選項 輸出 csharp ava 開發 日誌 art 首先簡介一下http-server: http-server是一個簡單的零配置命令行http服務器,他對於生產使用來說足夠強大,他是簡單和可刪節足以用於測試,足夠簡單易用,而且可用於本地開發 1、首先

python-圖形化界面編程(一個啟動停止服務的界面)

python-圖形化界面編程(一個啟動停止服務的界面)GUI編程1. Python實現GUI的方法1)使用python的標準庫 Tkinter2)使用wxPython3)使用Jython(可以和 Java無縫集成)2. 使用Tkinter安裝tkinter庫yum install -y tkinter t

本機mysql 5.7服務啟動後停止,某些服務在未有其他應用程序使用時停止

直接 .net white letter -s nbsp href blog mysql 5.7 本機mysql 5.7服務啟動後停止,某些服務在未有其他應用程序使用時停止 出現這種報錯,mysql服務啟動不了; 錯誤的嘗試: 1:嘗試了這個博客:https:

tnsping命令只是測試是否通,不檢測服務名是否可以解析

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

linux 常用到的命令 刪除 移動 複製 查詢 殺死程序 查詢程序

1. 刪除檔案 刪除一個檔案 rm -f 檔案路徑 刪除多個檔案 rm -f 檔案路徑 檔案路徑 ... 刪除資料夾以及資料夾中的檔案 rm -rf 資料夾路徑 刪除多個資料夾以及資料夾中的檔案 rm -rf 資料夾路徑 資料夾路徑 ...

window 中殺死佔用某個號的程序

第一步,開啟cmd命令視窗,輸入命令,根據埠號查詢對應的程序號 netstat -ano | findstr 8080 //檢視8080埠 netstat -ano | findstr 80 //列出程序及其佔用的埠,並且包含80 發現8080埠被PID(程序號)為952的程

查詢某個號被哪個程序佔用

 cmd控制檯裡執行以下命令:  1.列出所有埠的情況 > netstat -aon  2.查詢被佔用的埠號(port)  > netstat -aon|findstr "port"

Linux命令之檢視服務程序(ps aux、ps -aux、ps -ef)的運用

執行ps命令即可列出的是當前伺服器程序的快照(時間點),如果想要實時動態的顯示程序資訊,就可以使用top命令。 linux上程序有5種狀態:  1. 執行(正在執行或在執行佇列中等待)  2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到訊號)  3. 不可中斷(收到訊

windows系統下通過cmd命令查詢某個程序的執行路徑

我們常常需要知道執行的程序在哪個目錄下。使用wmic非常方便,能夠知道程序的詳細資訊。 例如:工作管理員中顯示的程序名為c.exe. 查詢路徑方法是:開啟cmd.exe,輸入wmic ,然後輸入process where(Description="c.exe") wmi

linux 常用到的命令 刪除 移動 複製 查詢 殺死程序

1. 刪除檔案 刪除一個檔案 rm -f 檔案路徑 刪除多個檔案 rm -f 檔案路徑 檔案路徑 ... 刪除資料夾以及資料夾中的檔案 rm -rf 資料夾路徑

CentOS7中啟動/停止/重啟服務命令

CentOS 7.0中一個最主要的改變,就是切換到了systemd。它用於替代紅帽企業版Linux前任版本中的SysV和Upstart,對系統和服務進行管理。systemd相容SysV和Linux標準組的啟動指令碼。 Systemd是一個Linux作業系統下的系統和服務管理

Windows---doc命令---如何檢視某個被誰佔用

如何檢視某個埠被誰佔用 1.開始—->執行—->cmd,或者是window+R組合鍵,調出命令視窗。 2.檢視被佔用埠對應的PID,輸入命令:netstat -aon|findstr “8080”,回車,記下最後一位數字,即PID,這裡是2720

windows下關閉某個所處的程序

1. netstat -ano |findstr  埠號    得到程序號   (findstr 很像linux下的grep命令)2.  taskkill /pid  程序號  /f 3.  netstat -ano |findstr  埠號 可以再驗證下該埠還開著沒

命令列檢視號,並殺死號上的程序

在網路程式的除錯過程中,經常發生一些出乎意料的事情,比如建立一個TCP服務失敗,這時候往往需要檢視系統的網路情況,最常用的網路抓包當然非WireShark模式。但往往很多時候只需要檢視某個埠的使用情況,它到底被那個程序(對應PID)佔用了,或者你還需要把它Kil