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