網上的方法一般都是 fuser -m /nfs 查出進程號,然后殺死進程號,或者fuser -km /nfs直接殺死,我試了下都不行
解決方法:
對於nfs文件系統來說,umount -l /nfs
關於fuser介紹:
用途
使用文件或文件結構識別進程。
語法
fuser [[-c | -C | -f ] [-x ] |-d ] [ -k | -K { SignalNumber | SignalName }] [ -u ] [ -V ]File ...
描述
此 fuser 命令列示了本地進程的進程號,那些本地進程使用 File 參數指定的本地或遠程文件。對於阻塞特別設備,此命令列示了使用該設備上任何文件的進程。
每個進程號后面都跟隨一個字母,該字母指示進程如何使用文件。
項目 | 描述 |
---|---|
c | 將此文件作為當前目錄使用。 |
e | 將此文件作為程序的可執行對象使用。 |
r | 將此文件作為根目錄使用。 |
s | 將此文件作為共享庫(或其他可裝入對象)使用。 |
進程號被寫入標准輸出(在進程號之間有空格的行中)。一個換行符被寫入標准錯誤(在每個文件操作數的最后一個輸出之后)。其他所有輸出被寫入標准錯誤。
此 fuser 命令不會檢測有 mmap 區域的進程,其中相關的文件描述符已從此被關閉。而且直到 FIFO(命名管道)完全打開,才會檢測使用 FIFO 的進程。例如,執行 fuser 命令時看不到等待開放式系統調用完成的進程。
fuser 命令用來確定使用文件系統的進程。如果文件系統是網絡文件系統 (NFS),而 NFS 服務器未響應,那么 fuser 命令可能已掛起。為了避免產生這樣的情況,可以將 FUSER_VERSION 環境變量設置為 1。
標志
項目 | 描述 |
---|---|
-c | 包含 File 的文件系統中關於任何打開的文件的報告。 |
-C | 有關文件系統中安裝在由 File 參數所指定的目錄中的打開文件的報告。如果 File 參數不是安裝點,那么該命令將報告錯誤。 |
-d | 包含 File 的文件系統中關於任何打開的已取消鏈接(已刪除)文件的報告。當與 -V 標志一起使用時,它也會報告被刪除文件的節點號和大小。 |
-f | 僅對 File 的打開實例報告。 |
-K SignalNumber | SignalName | 將指定信號發送到每個本地進程。只有 root 用戶才能終止另一個用戶的進程。可以將信號指定為 SignalName,例如,對 SIGKILL 信號或 SignalNumber(例如,9)指定 KILL。SignalName 的有效值是由 kill -l命令所顯示的那些值。 |
-k | 將 SIGKILL 信號發送到每個本地進程。只有 root 用戶才能終止另一個用戶的進程。
注:
fuser -k 或 -K 可能無法檢測和殺死程序開始運行后立即創建的新進程。
|
-u | 為進程號后圓括號中的本地進程提供登錄名。 |
-V | 提供詳細輸出。 |
-x | 與 -c 或 -f 連用,報告除標准 fuser 輸出以外的可執行的和可裝入對象。 |
安全性
示例
- 要列示使用 /etc/passwd 文件的本地進程的進程號,請輸入:
- 要列示使用 /etc/filesystems 文件的進程的進程號和用戶登錄名,請輸入:
- 要終止使用給定文件系統的所有進程,請輸入:
任一命令都列示了進程號和用戶名,然后終止每個正在使用 /dev/hd1 (/home) 文件系統的進程。僅有 root 用戶能終止屬於另一用戶的進程。如果您正在試圖卸裝 /dev/hd1 文件系統,而一個正在訪問 /dev/hd1 文件系統的進程不允許這樣,您可能希望使用此命令。
- 要列示正在使用已從給定文件系統刪除的文件的全部進程,請輸入:
文件
項目 | 描述 |
---|---|
/dev/kmem | 用於系統映像。 |
/dev/mem | 也用於系統映像。 |
參考https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_71/com.ibm.aix.cmds2/fuser.htm