fuser (Unix)

Unix命令fuser用於顯示哪些行程正在使用給定的檔案檔案系統unix通訊端。例如,要檢視訪問USB驅動器的行程ID及其使用者:

$ fuser -m -u /mnt/usb1
/mnt/usb1:   1347c(root)  1348c(guido)  1349c(guido)

該命令顯示使用指定檔案或檔案系統行程的行程識別碼。在預設的顯示模式下,每個檔名後跟一個字母,表示訪問類型:

c
當前目錄。
e
正在執行的可執行檔。
f
打開的檔案。
F
打開的寫入檔案。
r
根目錄。
m
mmap的檔案或共享庫

該命令還可以用來檢查哪些行程正在使用網路埠:

$ fuser -v -n tcp 80
                     USER        PID ACCESS COMMAND
80/tcp:              root       3067 F.... (root)httpd
                     apache     3096 F.... (apache)httpd
                     apache     3097 F.... (apache)httpd

如果沒有訪問任何檔案或發生致命錯誤,該命令將返回非零代碼。如果至少有一次訪問成功,則返回零。「fuser」的輸出可能有助於診斷嘗試解除安裝檔案系統時產生的「資源繁忙」訊息。

選項

-k
殺死所有訪問檔案的行程。例如,fuser -k /path/to/your/filename會殺死所有訪問此目錄的行程而無需確認。使用-i在操作前進行確認
-i
互動模式。殺死行程前提示
-v
詳細模式
-u
顯示使用者名稱
-a
顯示所有檔案
-m
name指定已掛載的檔案系統或塊裝置上的檔案。列出所有訪問該檔案系統上檔案的行程。如果指定了目錄檔案,將自動更改為name/.,即是可能掛載在此目錄中的任何檔案系統。

另外,請注意-k將向行程傳送SIGKILL。使用-signal傳送不同的訊號。有關fuser支援的訊號列表,執行「fuser -l」。

相關命令

  • 所有打開的檔案及其打開的行程列表都可以通過lsof命令獲得。
  • BSD作業系統上的等價命令是fstat(1)

外部連結

fuser – 命令與工具(Commands & Utilities)參考,單一UNIX®規範第7期,由國際開放標準組織發布