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*!