溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在Linux系統(tǒng)中使用fuser命令

發(fā)布時(shí)間:2021-03-08 09:30:19 來(lái)源:億速云 閱讀:333 作者:Leah 欄目:系統(tǒng)運(yùn)維

本篇文章給大家分享的是有關(guān)怎么在Linux系統(tǒng)中使用fuser命令,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

什么是Linux系統(tǒng)

Linux是一種免費(fèi)使用和自由傳播的類UNIX操作系統(tǒng),是一個(gè)基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),使用Linux能運(yùn)行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。

描述:

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)類型。

在zkfc的日志里面,有一個(gè)warn:PATH=$PATH:/sbin:/usr/sbin fuser -v -k -n tcp 8090 via ssh: bash: fuser: 未找到命令

原因是最小化安裝centos的時(shí)候,沒(méi)有fuser這個(gè)命令

yum install -y psmisc

語(yǔ)法:

fuser(選項(xiàng))(參數(shù))

訪問(wèn)類型如下:

c:代表當(dāng)前目錄 
e:將此文件作為程序的可執(zhí)行對(duì)象使用
f:打開的文件。默認(rèn)不顯示。 
F:打開的文件,用于寫操作。默認(rèn)不顯示。 
r:指示該目錄為進(jìn)程的根目錄。
m:指示進(jìn)程使用該文件進(jìn)行內(nèi)存映射,抑或該文件為共享庫(kù)文件,被進(jìn)程映射進(jìn)內(nèi)存。
s:將此文件作為共享庫(kù)(或其他可裝載對(duì)象)使用

常用選項(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.

參數(shù)

文件:可以是文件名或者TCP、UDP端口號(hào)。

使用示例:

顯示使用某個(gè)文件的進(jìn)程信息

這個(gè)命令在umount的時(shí)候很有用,可以找到還有哪些用到這個(gè)設(shè)備了。 

?

1

2

3

$ fuser -um /dev/sda2

/dev/sda2:      6378c(quietheart) 6534c(quietheart) 6628(quietheart)

6653c(quietheart) 7429c(quietheart) 7549c(quietheart) 7608c(quietheart)

殺掉打開readme文件的程序

這里,會(huì)在kill之前詢問(wèn)是否確定。最好加上-v以便知道將要?dú)⒛莻€(gè)進(jìn)程。 

$fuser -m -k -i readme

查看那些程序使用tcp的80端口

$fuser -v -n tcp 80 或 $fuser -v 80/tcp 

fuser不同信號(hào)的應(yīng)用

用 -l參數(shù)可以列出fuser所知的信號(hào)

?

1

2

3

4

[root@_mongodb_117 ~]# fuser -l

HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM

STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS

UNUSED

fuser可以發(fā)送它已知的信號(hào)給訪問(wèn)的指定文件進(jìn)程而代替-k參數(shù)默認(rèn)發(fā)送的SIGKILL,例如:只是掛起進(jìn)程,那么發(fā)送HUP信號(hào)就可以了

[root@_mongodb_117 ~]# fuser -v /root/install.log

用戶     進(jìn)程號(hào) 權(quán)限   命令

?

1

2

3

4

/root/install.log:  root    3347 f.... tail

[root@_mongodb_117 ~]# fuser -k -SIGHUP /root/install.log

 /root/install.log:  3347

[root@_mongodb_117 ~]# fuser -v /root/install.log

要列出使用/etc/passwd文件的本地進(jìn)程的進(jìn)程號(hào),請(qǐng)輸入:

fuser /etc/passwd

要列出使用/etc/filesystems文件的進(jìn)程的進(jìn)程號(hào)和用戶登錄名,請(qǐng)輸入:

fuser -u /etc/filesystems

以上就是怎么在Linux系統(tǒng)中使用fuser命令,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

原文鏈接:https://www.cnblogs.com/Sungeek/p/11857549.html

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI