前言

  • 之前連公司堡壘機的時候發現連不上,找運維排查是建立的連結數太多,很多超時連結沒有斷掉,導致不能再建立連結
  • 此時,需要手動斷開使用者終端連結,然後百度搜到 fuser 可以斷開使用者終端連結

命令作用

有三種解釋

  • 使用檔案或 socket 識別程序
  • 顯示哪些程序使用命名檔案、socket 或檔案系統
  • 顯示使用指定檔案或檔案的程序的 pid 系統

總的來說就是檔案+程序

語法格式

fuser [-fMuvw] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME...

引數列表

引數 作用
-a,--all 顯示未使用的檔案
-i,--interactive 殺死前的互動式詢問(忽略而不使用-k)
-k,--kill 終止訪問命名檔案的程序
-l,--list 列出可用的訊號名稱
-m,--mount 顯示使用命名檔案系統或塊裝置的所有程序
-M,--ismountpoint 僅當NAME是掛載點時滿足請求
-n,--namespace 在此名稱空間中搜索名稱空間(檔案、udp或tcp)
-s,--silent 靜默操作
-SIGNAL  傳送這個訊號而不是SIGKILL
-u,--user 顯示使用者ID
-v,--verbose 詳細輸出
-w,--writeonly 殺死具有寫訪問許可權的程序
-V,--version 版本資訊
-4,--ipv4 搜尋ipv4 socket
-6,--ipv6

搜尋ipv6 socket

- reset 重置

不會所有引數都講

基礎用法

fuser /root

PID後跟的字元說明了程序以何種方式與該目錄/檔案關聯

  • c  指示程序的工作目錄
  • e  指示該檔案為程序的可執行檔案(即程序由該檔案拉起)
  • f  指示該檔案被程序開啟,預設情況下f字元不顯示
  • F  指示該檔案被程序開啟進行寫入,預設情況下F字元不顯示
  • r  指示該目錄為程序的根目錄
  • m  指示程序使用該檔案進行記憶體對映,抑或該檔案為共享庫檔案,被程序對映進記憶體
  • . 佔位符,預設顯示模式中省略

詳細輸出

fuser -v /root

殺掉程序

fuser -k /dev/pts/0 

這是斷開本地 ssh 連線阿里雲伺服器的終端

殺掉程序並詢問

fuser -v -i -k /dev/pts/0