2. 選項
3. EXAMPLES
4. RESTRICTIONS 限制
5. SIGNAL 可用信號
fuser - 使用文件或套接字識別進程
1. 描述
fuser使用指定的文件或文件系統顯示進程的PID。
在默認顯示模式下,每一個文件名後跟一個表示訪問類型的字母:
F…. |
open file for writing. F is omitted in default display mode. |
打開文件寫。 默認顯示模式中省略F。 |
f…. |
open file. f is omitted in default display mode. |
打開文件。 默認顯示模式中省略f。 |
.r… |
root directory. |
根目錄。 |
..c.. |
current directory. |
當前目錄。進程的工做目錄 |
...e. |
executable being run. |
正在運行的可執行 |
….m |
mmap'ed file or shared library. |
mmap的文件或共享庫。 |
. |
Placeholder, omitted in default display mode. |
佔位符,在默認顯示模式下省略。 |
若是未訪問任何指定的文件或發生致命錯誤,fuser 將返回非零返回碼。 若是至少找到一個訪問權限,則fuser返回零。
要使用TCP和UDP套接字查找進程,必須使用「-n」選項選擇相應的名稱空間。 默認狀況下,fuser將同時查看IPv6和IPv4套接字。 要更改默認行爲,請使用-4和-6選項。 套接字能夠由本地和遠程端口以及遠程地址指定。 全部字段都是可選字段,但必須存在缺乏字段前面的逗號:
[lcl_port][,[rmt_host][,[rmt_port]]]
符號或數字值均可用於IP地址和端口號。
fuser只將PID輸出到stdout,其餘全部內容都發送到stderr。
2. 選項
Option |
en |
cn |
互斥 |
依賴 |
-a,--all |
display unused files too |
顯示命令中指定的全部文件,包含未使用 |
-s |
|
-s,--silent |
silent operation |
無聲的操做. 將忽略-u和-v。 |
-a |
|
-v,--verbose |
verbose output |
詳細輸出 |
|
|
-u,--user |
display user IDs |
顯示用戶ID |
|
|
|
|
|
|
|
-n,--namespace SPACE |
search in this name space (file, udp, or tcp) |
在此名稱空間中搜索(默認文件,也可udp或tcp) |
|
|
-4,--ipv4 |
search IPv4 sockets only |
僅搜索IPv4套接字, 僅對tcp和udp命名空間有效。 |
-6 |
|
-6,--ipv6 |
search IPv6 sockets only |
僅搜索IPv6套接字, 僅對tcp和udp命名空間有效。 |
-4 |
|
|
|
|
|
|
-k,--kill |
kill processes accessing the named file |
殺死訪問該文件的進程。默認發SIGKILL,可用-SIGNAL更改 |
|
|
-i,--interactive |
ask before killing (ignored without -k) |
在殺戮以前詢問 |
|
-k |
-w,--writeonly |
kill only processes with write access |
僅殺死具備寫訪問權限的進程 |
|
-k |
-SIGNAL |
send this signal instead of SIGKILL |
發送指定信號而不是SIGKILL |
|
-k |
-l,--list-signals |
list available signal names |
列出可用的信號名稱 |
|
|
|
|
|
|
|
-m,--mount |
show all processes using the named filesystems or block device |
使用命名文件系統或塊設備顯示全部進程 |
|
|
-M,--ismountpoint |
fulfill request only if NAME is a mount point |
僅在NAME是掛載點時才知足請求。若是NAME剛好不是文件系統,它能夠防止你殺死機器。 |
|
|
-I,--inode |
use always inodes to compare files |
始終使用inode來比較文件 |
|
|
-V,--version |
display version information |
顯示版本信息 |
|
|
- |
Reset all options and set the signal back to SIGKILL. |
重置全部選項並將信號設置回SIGKILL。 |
|
|
3. EXAMPLES
$ fuser -km /home
// kills all processes accessing the file system /home in any way.以任何方式殺死訪問文件系統/ home的全部進程。
if fuser -s /dev/ttyS1; then :; else something; fi
// invokes something if no other process is using /dev/ttyS1.若是沒有其餘進程正在使用/dev/ttyS1,則調用一些東西。
$ fuser telnet/tcp
// shows all processes at the (local) TELNET port.顯示(本地)TELNET端口的全部進程。
$ fuser -v fuser.xls
USER PID ACCESS COMMAND
/home/toma/fuser.xls:
toma 5323 F.... soffice.bin
$ sudo fuser -vua /dev/sda10
USER PID ACCESS COMMAND
/dev/sda10: root 839 F.... (root)mount.ntfs
$ sudo fuser -mvua /dev/sda10
USER PID ACCESS COMMAND
/dev/sda10: root kernel mount (root)/run/media/toma/TjOe
root 839 F.... (root)mount.ntfs
toma 7697 f.... (toma)vlc
$ sudo fuser -vun tcp 1080
USER PID ACCESS COMMAND
1080/tcp: root 421 F.... (root)v2*
4. RESTRICTIONS 限制
以相同方式屢次訪問同一文件或文件系統的進程僅顯示一次。
若是在命令行上屢次指定了同一個對象,則可能會忽略其中一些條目。
除非以特權運行,不然fuser可能只能收集部分信息。所以,可能未列出屬於其餘用戶的進程打開的文件,而且可執行文件可能僅被分類爲映射。
fuser沒法報告它沒有查看文件描述符表的權限的任何進程。發生此問題的最多見時間是在以非root用戶身份運行fuser時查找TCP或UDP套接字。在這種狀況下,定影器將報告沒法訪問。
安裝fuser SUID root將避免與部分信息相關的問題,但出於安全和隱私緣由可能不合須要。
udp和tcp名稱空間,而且沒法使用早於1.3.78的內核搜索UNIX域套接字。
內核訪問僅使用-v選項顯示。
-k選項僅適用於進程。若是用戶是內核,fuser將打印一條建議,但除此以外不採起任何措施。
5. SIGNAL 可用信號
-SIGNAL 選項可用信號使用 -l 列出
No |
fuser -l |
信號 |
默認操做 |
描述 |
1 |
HUP |
SIGHUP |
終止 |
掛斷 |
2 |
INT |
SIGINT |
終止 |
終端中斷信號 'Ctrl C’ |
3 |
QUIT |
SIGQUIT |
終止(核心轉儲) |
終端退出信號 'Ctrl \’ |
4 |
ILL |
SEAL |
終止(核心轉儲) |
非法指令 |
5 |
TRAP |
SIGTRAP |
終止(核心轉儲) |
跟蹤/斷點陷阱 |
6 |
ABRT |
SIGABRT |
終止(核心轉儲) |
處理停止信號 |
7 |
BUS |
SIGBUS |
終止(核心轉儲) |
訪問內存對象的未定義部分 |
8 |
FPE |
SIGFPE |
終止(核心轉儲) |
錯誤的算術運算 |
9 |
KILL |
SIGKILL |
終止 |
強制終止(不能被抓住或忽略) |
10 |
USR1 |
SIGUSR1 |
終止 |
用戶定義的信號1 |
11 |
SEGV |
SIGSEGV |
終止(核心轉儲) |
無效的內存引用 |
12 |
USR2 |
SIGUSR2 |
終止 |
用戶定義的信號2 |
13 |
PIPE |
SIGPIPE |
終止 |
寫在沒有人閱讀的管道上 |
14 |
ALRM |
SIGALRM |
終止 |
警報 |
15 |
TERM |
SIGTERM |
終止 |
終止信號 |
16 |
STKFLT |
SIGSTKFLT |
|
堆棧故障 |
17 |
CHLD |
SIGCHLD |
忽略 |
子進程已終止,中止或繼續 |
18 |
CONT |
SIGCONT |
繼續 |
若是中止,繼續執行 'fg/bg’ |
19 |
STOP |
SIGSTOP |
中止 |
中止執行(沒法捕獲或忽略) ‘Ctrl Z’ |
20 |
TSTP |
SIGTSTP |
中止 |
終端中止信號 ‘Ctrl Z’ |
21 |
TTIN |
SIGTTIN |
中止 |
後臺進程嘗試讀取 |
22 |
TTOU |
SIGTTOU |
中止 |
嘗試寫入的後臺進程 |
23 |
URG |
SIGURG |
忽略 |
套接字可提供高帶寬數據 |
24 |
XCPU |
SIGXCPU |
終止(核心轉儲) |
超出CPU時間限制 |
25 |
XFSZ |
SIGXFSZ |
終止(核心轉儲) |
超出文件大小限制 |
26 |
VTALRM |
SIGVTALRM |
終止 |
虛擬計時器已過時 |
27 |
PROF |
SIGPROF |
終止 |
分析計時器已過時 |
28 |
WINCH |
SIGWINCH |
忽略 |
終端窗口大小已更改 |
29 |
POLL |
SIGPOLL |
終止 |
可輪詢的事件 |
30 |
PWR |
SIGPWR |
|
電源故障 |
31 |
SYS |
SIGSYS |
終止(核心轉儲) |
系統調用錯誤 |
默認操做行動解釋:
終止 - Terminate 過程異常終止。該過程終止於_exit()的全部後果,除了wait()和waitpid()可用的狀態指示指定信號的異常終止。
終止(核心轉儲) - Terminate (core dump) 異常終止進程。另外,可能發生實現定義的異常終止動做,例如建立核心文件。
忽略 - Ignore 忽略信號。
中止 - Stop 中止(不終止)該過程。
繼續 - Continue 若是中止,繼續該過程; 不然,忽略信號。
https://en.wikipedia.org/wiki/Signal_(IPC)
Post operation failed. The error message related to this problem was as follows: 博文中含有違規內容: v2*!