1. 程式人生 > >檢視套接字,埠等狀態 lsof

檢視套接字,埠等狀態 lsof

lsof, LiSt Opened Files, 列出開啟的檔案, 聽起來很簡單的樣子. 但想*nix中很多其他工具一樣, lsof把這件簡單的事情做到了爐火純青. 因為Unix認為”一切皆檔案”, 那麼”開啟的檔案”就不僅僅是傳統意義上開啟的檔案了, 還可以是網路/Unix域套接字, 匿名/具名管道, 共享庫檔案, 目錄檔案, 裝置檔案等等. 很多場景下, 檢視程序或系統開啟的檔案會給除錯帶來極大的幫助. 下面簡單地介紹lsof常被使用的功能選項.

  • lsof : 簡單地執行lsof會列出當前系統中所有被開啟的檔案, 但為了看到完整的資訊, 通常需要具有root許可權;
  • lsof -u dutor 
    : 列出使用者dutor開啟的檔案, 可指定多個使用者, 預設是OR的關係;
  • lsof -c tair : 列出名稱以tair開頭的程序開啟的檔案, c for command, 可指定多個;
  • lsof -c /^t.*r$/ : 列出名稱以t開頭, r結尾的程序開啟的檔案;
  • lsof -p 12315 : 列出程序號為12315的程序開啟的檔案, 可指定多個;
  • lsof server.log : 列出開啟server.log檔案的程序, 可指明多個檔案;
  • lsof . : 列出開啟當前目錄的程序;
  • lsof +D . : 遞迴地列出當前目錄中被開啟的檔案, 當然也可以lsof | grep `pwd`;
  • lsof -i 
    : 列出開啟的套接字;
  • lsof -i tcp : 列出開啟的tcp套接字;
  • lsof -i :5198 : 列出開啟5198埠的程序;
  • lsof -i :ssh : 列出開啟22埠的程序;
  • lsof -i tcp:5198 : 列出開啟5198號tcp埠的程序;
  • lsof -U : 列出開啟Unix域套接字的程序;
  • lsof -d 0-2 : 列出在0到2檔案描述符上開啟檔案的程序;
  • lsof -d mem : 列出開啟對映檔案的程序;
  • lsof -d txt : 列出開啟的可執行檔案.

  還有其他一些非常有用的選項, 可以對lsof的行為進行控制.

  • lsof -a: 上述功能性選項可以組合使用, 但預設採用OR邏輯列出, -a選項令lsof使用AND邏輯;
  • lsof -t: 只列出程序號, 可以藉此得到特定的程序列表, 以方便對這些程序的自動處理, 比如kill `lsof -t -i :5198`會殺死所有開啟5198埠的程序;
  • lsof -r [seconds]: -r選項可以讓lsof以一定的時間間隔連續執行, 在監視檔案/程序時會非常實用.

  這只是一個實用的不完全選項的羅列, 如果你知道其他非常實用的選項, 還望留言分享之.

相關推薦

檢視狀態 lsof

lsof, LiSt Opened Files, 列出開啟的檔案, 聽起來很簡單的樣子. 但想*nix中很多其他工具一樣, lsof把這件簡單的事情做到了爐火純青. 因為Unix認為”一切皆檔案”, 那麼”開啟的檔案”就不僅僅是傳統意義上開啟的檔案了, 還可以是網路/Un

實現重用

假如埠被socket使用過,並且利用socket.close()來關閉連線,但此時埠還沒有釋放,要經過一個TIME_WAIT的過程之後才能使用,這是TNN的相當煩銀的,為了實現埠的馬上覆用,可以選擇setsockopt()函式來達到目的。(以下是網上找到的一篇文章的一小段相關例子,試用之後,相當有效果,特此提

浪潮培訓7(Socket非同步)

一、輸入輸出流 1、用BufferedReader的readLine的時候,以\n\r結束, 2、並且資訊傳送端必須呼叫flush推送資料 3、並且資訊的最後要用識別符號結束,比如,@:end 4、java中套接字是new 完就連結成功了 5、用client.getStream獲得流,用流

嵌入式linux網路程式設計UNIX域AF_LOCALPF_LOCALPF_UNIXAF_UNIX程序間通訊機制

文章目錄 1,UNIX域套接字 2,UNIX域套接字模型 3,UNIX域套接字 --- 示例 3.1,net.h 3.2,client.c 3.3,sever.c 3.4,linklist.h 3.5,link

pollepoll方法本地多工程式設計父子程序

poll from select  import  poll 1. 建立poll物件 p = poll() 2. 新增關注的IO poll  IO 事件分類 POLLIN  POLLOUT  POLLERR  POLLH

多路複用與多路分解;UDP報文段格式;

UDP套接字(目的IP地址,目的埠號),若兩個UDP報文段有不同源IP地址和/或源埠號,但有相同目的IP地址和目的埠號,則這兩個報文段將通過相同的套接字被定向到相同的目的程序。TCP套接字(源IP地址,源埠號,目的IP地址,目的埠號),當一個TCP報文段從網路到達一臺主機時,

理解

1  套接字程式設計基礎 套接字,英文為socket,是一種雙向的通訊埠。位於網路中的主機通過連線的套接字提供的介面進行資料傳輸。本節將主要介紹使用套接字進行程式設計的一些基本概念。 1.1  套接字與埠 套接字是一種使用標準UNIX檔案描述符(file descr

原始接收所有資料的設定方法及程式碼。

<img src="https://img-blog.csdn.net/20150320091844253?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU3RheV9EZWVw/font/5a6L5L2T/fontsize

嵌入式Linux網路程式設計網路基礎socket(SOCK_STREAM、SOCK_DGRAM、SOCK_RAW)IP地址位元組序位元組序轉換函式IP地址的轉換

文章目錄 1,socket 1.1,socket的型別(SOCK_STREAM、SOCK_DGRAM、SOCK_RAW) 1.2,socket的位置 2,IP地址 2.1,特殊IP地址: 3,埠號

netstat檢視本機所有的(TCP/UDP)並查詢使用該的程式

netstat -a 顯示未開始通訊,正在通訊的所有套接字 -n 顯示IP地址與埠號 -o 顯示使用該套接字的程式PID PID:程序識別符號,作業系統為了標識程式而使用的編號 使用netstat命令後,如上圖 第一列為所用協議:TCP/UDP 第二列

C#利用 HttpWebRequest 類傳送post請求出現“(協議/網路地址/)只允許使用一次”問題

宣告:問題雖然已經被解決,但是並沒有明白具體原理,歡迎大佬補充。   最近網站出現一個問題,在C#裡面使用  HttpWebRequest 類去傳送post請求,偶爾 會出現 “套接字(協議/網路地址/埠)只允許使用一次” 的異常,很明顯應該是埠被佔用。 原因排查: 1、

根據客戶端獲取客戶機的IP和其形式為IP:port

char *sock_ntop(const struct sockaddr *sa, socklen_t salen) { char portstr[7]; static char str[128]; switch (sa->sa_family) { ca

Django:Error: [WinError 10013] 以一種訪問許可權不允許的方式做了一個訪問的嘗試。(殺佔用程序)

Error: [WinError 10013] 以一種訪問許可權不允許的方式做了一個訪問套接字的嘗試。 1.啟動伺服器的時候提示埠被佔用,Error: [WinError 10013] 以一種訪問許可權不允許的方式做了一個訪問套接字的嘗試。  解決方案 1.查找出被佔用的

socket程式設計 程式設計 (純理論以後補一下實現程式碼)

基本概念   套接字——應用層和傳輸層之間,提供應用傳輸介面 Web/RPC/中介軟體——應用層之上的網路開發 應用程式設計介面API(application programming interface) 套接字介面(socket interface)簡稱套接字,

Android 解決 通常每個地址(協議/網路地址/)只允許使用一次。 (10048)

Android模擬器埠被佔用問題的解決辦法  剛剛在用手機除錯的時候遇到了cannot bind to 127.0.0.1:5037: 通常每個套接字地址(協議/網路地址/埠)只允許使用一次(10048)的 問題,adb始終無法啟動,試了很多方法,好像只有重啟電腦可以。這種錯誤會經常陪伴我

34.非阻塞丶異常處理丶掃描

非阻塞及套接字異常處理:   套接字異常捕獲: 套接字建立失敗,8000  socket.error  客戶端連線錯誤:

本機除錯udp提示System.Net.Sockets.SocketException:“通常每個地址(協議/網路地址/)只允許使用一次。”

寫程式,在本機用tcp助手除錯,提示: System.Net.Sockets.SocketException:“通常每個套接字地址(協議/網路地址/埠)只允許使用一次。 報錯在這一句: UdpClient udpClient = new UdpClient(7777); 埠也換了幾個不同

網路收發緩衝區基於udp的通訊udp應用之廣播

recv()特徵 1. 如果連線端斷開,recv會立即結束阻塞返回空字串 2. 當接收緩衝區為空時會阻塞 3. 如果recv一次接受不完緩衝區內容,下次會繼續接收,確保資料不丟失 send()特性 1.如果另一端不存在還試圖使用send進行傳送則會產生BrokenPipeError異常 2.當傳

我的Windows核心程式設計——完成+ 圖解

========================宣告============================ 本文原創,轉載請註明作者和出處,並保證文章的完整性(包括本宣告)。 本文不定期修改完善,為保證內容正確,建議移步原文處閱讀。 ==================

解決VMware虛擬機器報錯“無法連線MKS:連線嘗試次數太多正在放棄”

1.錯誤描述 在VMware中開啟虛擬機器時報錯: “無法連線MKS:套接字連線嘗試次數太多,正在放棄” 物理機作業系統: Windows 7 虛擬機器作業系統: Kali Linux