fuser 用法简析
fuser 用法簡析
fuser?
[功能]?
fuser 可以顯示出當前哪個程序在使用磁盤上的某個文件、掛載點、甚至網(wǎng)絡(luò)端口,并給出程序進程的詳細信息.?
[描述]?
fuser顯示使用指定文件或者文件系統(tǒng)的進程ID.默認情況下每個文件名后面跟一個字母表示訪問類型。?
訪問類型如下:?
c 代表當前目錄?
e 可執(zhí)行的被運行?
f 打開的文件。默認不顯示。?
F 打開的文件,用于寫操作。默認不顯示。?
r 根目錄。?
m 映射文件或者共享庫。?
當指定的文件沒有被訪問,或者出現(xiàn)錯誤的時候,fuser會返回非零。?
為了查看使用tcp和udp套接字的進程,需要-n選項并指定名稱空間。默認IpV4和IpV6都會顯示。套接字可以是本地的或者是遠程的端口,和遠程的地址。所有的域是可選的,但是其前面的','必須存在。如下:?
[lcl_port][,[rmt_host][,[rmt_port]]]?
對于ip地址和port,名稱和數(shù)字表示都可以使用。?
fuser只把PID輸出到標準輸出,其他的都輸出到標準錯誤輸出。?
一些常用選項:?
-a 顯示所有命令行中指定的文件,默認情況下被訪問的文件才會被顯示。?
-c 和-m一樣,用于POSIX兼容。?
-k 殺掉訪問文件的進程。如果沒有指定-signal就會發(fā)送SIGKILL信號。?
-i 殺掉進程之前詢問用戶,如果沒有-k這個選項會被忽略。?
-l 列出所有已知的信號名稱。?
-m name 指定一個掛載文件系統(tǒng)上的文件或者被掛載的塊設(shè)備(名稱name)。這樣所有訪問這個文件或者文件系統(tǒng)的進程都會被列出來。如果指定的是一個目錄會自動轉(zhuǎn)換成"name/",并使用所有掛載在那個目錄下面的文件系統(tǒng)。?
-n space 指定一個不同的命名空間(space).這里支持不同的空間文件(文件名,此處默認)、tcp(本地tcp端口)、udp(本地udp端口)。對于端口, 可以指定端口號或者名稱,如果不會引起歧義那么可以使用簡單表示的形式,例如:name/space (即形如:80/tcp之類的表示)。?
-s 靜默模式,這時候-u,-v會被忽略。-a不能和-s一起使用。?
-signal 使用指定的信號,而不是用SIGKILL來殺掉進程。可以通過名稱或者號碼來表示信號(例如-HUP,-1),這個選項要和-k一起使用,否則會被忽略。?
-u 在每個PID后面添加進程擁有者的用戶名稱。?
-v 詳細模式。輸出似ps命令的輸出,包含PID,USER,COMMAND等許多域,如果是內(nèi)核訪問的那么PID為kernel.?
-V 輸出版本號。?
-4 使用IPV4套接字,不能和-6一起應(yīng)用,只在-n的tcp和udp的命名存在時不被忽略。?
-6 使用IPV6套接字,不能和-4一起應(yīng)用,只在-n的tcp和udp的命名存在時不被忽略。?
- 重置所有的選項,把信號設(shè)置為SIGKILL.?
?
更多參見fuser的man手冊.
[舉例]?
*顯示使用某個文件的進程信息:?
$ fuser -um /dev/sda2?
輸入之后,輸出如下:?
/dev/sda2: ? ? ? ? ? ?6378c(quietheart) ?6534c(quietheart) ?6628(quietheart) ?6653c(quietheart) ?7429c(quietheart) ?7549c(quietheart) ?7608c(quietheart)?
這個命令在umount的時候很有用,可以找到還有哪些用到這個設(shè)備了。?
*殺掉打開readme文件的程序,在確定之前有提示:?
$fuser -m -k -i readme?
或$fuser -kmi readme?
這里,會在kill之前詢問是否確定。最好加上-v以便知道將要殺那個進程。?
*查看那些程序使用tcp的80端口:?
$fuser -n tcp 80?
或$fuser -v -n tcp 80?
或$fuser -v 80/tcp?
這里,后兩種方式顯示的信息比較全,因為有了-v選項。?
[其他]?
*假設(shè)無法卸載的設(shè)備為/dev/sdb1?
1)運行下面命令看一下哪個用戶哪個進程占用著此設(shè)備?
fuser -m -v /dev/sdb1?
2)運行下面命令殺掉占用此設(shè)備的進程?
fuser -m -v -k /dev/sdb1?
或者fuser -m -v -k -i ?/dev/sdb1(每殺掉一下進程會讓你確認)?
3)再umount?
4)掃描/dev/sdb1分區(qū)
[/sbin/]fsck [-ay]??/dev/sdb1
*殺掉所有以任何形式訪問文件系統(tǒng) /home的進程:?
$fuser -km /home
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的fuser 用法简析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: upplemental Logging
- 下一篇: Windows 7系统如何重装或安装IE