前言
- 之前連公司堡壘機的時候發現連不上,找運維排查是建立的鏈接數太多,很多超時鏈接沒有斷掉,導致不能再創建鏈接
- 此時,需要手動斷開用戶終端鏈接,然后百度搜到 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