博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
fuser命令小结
阅读量:6885 次
发布时间:2019-06-27

本文共 3323 字,大约阅读时间需要 11 分钟。

前提

linux环境下,当使用umount命令卸载挂载点时,会遇到“device is busy”提示,这时fuser就能查出谁在使用这个资源;当然umount lf  [挂载点也可以强制卸载

功能

fuser 可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息.

fuser只把PID输出到标准输出,其他的都输出到标准错误输出。

常用选项

-a 显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示。

-c -m一样,用于POSIX兼容。

-k 杀掉访问文件的进程。如果没有指定-signal就会发送SIGKILL信号。结合 signal

 

-signal 使用指定的信号,而不是用SIGKILL来杀掉进程。可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略。

 

-l 列出所有已知的信号名称。

-i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略。

-m name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。这样所有访问这个文件或者文件系统的进程都会被列出来。如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统。

-n space 指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)tcp(本地tcp端口)udp(本地udp端口)。对于端口,可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space (即形如:80/tcp之类的表示)

-s 静默模式,这时候-u,-v会被忽略。-a不能和-s一起使用。 

-u 在每个PID后面添加进程拥有者的用户名称。

-v 详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PIDkernel.

案例

假设无法卸载的设备为/dev/sdb1 

1)运行下面命令看一下哪个用户哪个进程占用着此设备 
fuser -m -v /dev/sdb1

2)运行下面命令杀掉占用此设备的进程 

fuser -m -v -k /dev/sdb1 
或者fuser -m -v -k -i  /dev/sdb1(每杀掉一下进程会让你确认) 
3)umount

 

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

$fuser -n tcp 80 
或$fuser -v -n tcp 80 
或$fuser -v 80/tcp 
这里,后两种方式显示的信息比较全,因为有了-v选项

#                       用户     进程号 权限   命令111/udp:             rpc         968 F.... rpcbind111/tcp:             rpc         968 F.... rpcbind

 

如上例子中第4列的权限也成访问类型,如下:

代表当前目录           F 打开的文件,用于写操作。默认不显示。

可执行的被运行          m 映射文件或者共享库。

打开的文件。默认不显示。   r 根目录。

其它相同命令:

# tcp    0      0 0.0.0.0:111            0.0.0.0:*LISTEN  968/rpcbindtcp    0      0 :::111                 :::*LISTEN  968/rpcbindudp    0      0 0.0.0.0:111            0.0.0.0:*968/rpcbind         udp    0      0 :::111                 :::*968/rpcbind#        udp    UNCONN     0      0              *:111         *:*users:(("",968,6))udp    UNCONN     0      0              :::111         :::*users:(("",968,9))tcp    LISTEN     0      128             :::111         :::*users:(("",968,11))tcp    LISTEN     0      128             *:111         *:*users:(("",968,8))# COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMErpcbind 968  rpc    6u  IPv4  11275      0t0  UDP *:sunrpc rpcbind 968  rpc    8u  IPv4  11278      0t0  TCP *:sunrpc (LISTEN)rpcbind 968  rpc    9u  IPv6  11280      0t0  UDP *:sunrpc rpcbind 968  rpc   11u  IPv6  11283      0t0  TCP *:sunrpc (LISTEN)

 signal列表

# 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

 

# kill -l

1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL        5) SIGTRAP

6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL       10) SIGUSR1

11) SIGSEGV     12) SIGUSR2        13) SIGPIPE     14) SIGALRM       15) SIGTERM

16) SIGSTKFLT   17) SIGCHLD        18) SIGCONT     19) SIGSTOP       20) SIGTSTP

21) SIGTTIN     22) SIGTTOU        23) SIGURG      24) SIGXCPU      25) SIGXFSZ

26) SIGVTALRM   27) SIGPROF        28) SIGWINCH    29) SIGIO        30) SIGPWR

31) SIGSYS     34) SIGRTMIN        35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3

38) SIGRTMIN+4  39) SIGRTMIN+5       40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8

43) SIGRTMIN+9  44) SIGRTMIN+10      45) SIGRTMIN+11    46) SIGRTMIN+12   47) SIGRTMIN+13

48) SIGRTMIN+14  49) SIGRTMIN+15      50) SIGRTMAX-14   51) SIGRTMAX-13   52) SIGRTMAX-12

53) SIGRTMAX-11  54) SIGRTMAX-10      55) SIGRTMAX-9    56) SIGRTMAX-8   57) SIGRTMAX-7

58) SIGRTMAX-6   59) SIGRTMAX-5       60) SIGRTMAX-4    61) SIGRTMAX-3   62) SIGRTMAX-2

63) SIGRTMAX-1   64) SIGRTMAX

详细使用命令 man 7signal

本文转自 qq8658868 51CTO博客,原文链接:http://blog.51cto.com/hujizhou/2060234,如需转载请自行联系原作者
你可能感兴趣的文章
Pulsar本地单机(伪)集群 (裸机安装与docker方式安装) 2.2.0
查看>>
利用H5的css3制作动画
查看>>
Android View 事件分发源码分析
查看>>
vue 2.0 - props
查看>>
RustCon Asia 实录 | Rust 在国内某视频网站的应用
查看>>
Vue遇上Analytics
查看>>
mysql
查看>>
修改max_allowed_packet(允许执行的sql最大长度)
查看>>
node js 处理时间分析
查看>>
判断数据库、表和字段是否存在
查看>>
新手安装postgreSQL后无法连接服务器
查看>>
递归和动态规划
查看>>
java实现简单的控制台管理系统
查看>>
建造模式
查看>>
Java 多线程(四)——线程同步(synchronized、ReentrantLock)
查看>>
遇到Could not load file or assembly ... or one of its dependencies怎么办
查看>>
TCP 上传文件
查看>>
Linux 重定向符:> ,>>, <
查看>>
金融行业注册电子邮箱账号时最需要注意什么?
查看>>
Xhprof安装
查看>>