Linux中fuser命令用法详解

 更新时间:2020年06月29日 09:23:54   作者:Tse先生  
这篇文章主要介绍了Linux中fuser命令用法详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

描述:

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

fuser显示使用指定文件或者文件系统的进程ID。

默认情况下每个文件名后面跟一个字母表示访问类型。

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

原因是最小化安装centos的时候,没有fuser这个命令

yum install -y psmisc

语法:

fuser(选项)(参数)

访问类型如下:

c:代表当前目录 
e:将此文件作为程序的可执行对象使用
f:打开的文件。默认不显示。 
F:打开的文件,用于写操作。默认不显示。 
r:指示该目录为进程的根目录。
m:指示进程使用该文件进行内存映射,抑或该文件为共享库文件,被进程映射进内存。
s:将此文件作为共享库(或其他可装载对象)使用

常用选项

-a:显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示。 
-c:和-m一样,用于POSIX兼容。 
-k:杀掉访问文件的进程。如果没有指定-signal就会发送SIGKILL信号。 
-i:杀掉进程之前询问用户,如果没有-k这个选项会被忽略。 
-l:列出所有已知的信号名称。 
-m:name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。这样所有访问这个文件或者文件系统的进程都会被列出来。如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统。 
-n:space 指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口, 可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space (即形如:80/tcp之类的表示)。 
-s:静默模式,这时候-u,-v会被忽略。-a不能和-s一起使用。 
-signal:使用指定的信号,而不是用SIGKILL来杀掉进程。可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略。 
-u:在每个PID后面添加进程拥有者的用户名称。 
-v:详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PID为kernel.  -V 输出版本号。 
-4:使用IPV4套接字,不能和-6一起应用,只在-n的tcp和udp的命名存在时不被忽略。 
-6:使用IPV6套接字,不能和-4一起应用,只在-n的tcp和udp的命名存在时不被忽略。 
- 重置所有的选项,把信号设置为SIGKILL.

参数

文件:可以是文件名或者TCP、UDP端口号。

使用示例:

显示使用某个文件的进程信息

这个命令在umount的时候很有用,可以找到还有哪些用到这个设备了。 

$ fuser -um /dev/sda2 
/dev/sda2:      6378c(quietheart) 6534c(quietheart) 6628(quietheart) 
6653c(quietheart) 7429c(quietheart) 7549c(quietheart) 7608c(quietheart) 

杀掉打开readme文件的程序

这里,会在kill之前询问是否确定。最好加上-v以便知道将要杀那个进程。 

$fuser -m -k -i readme

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

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

fuser不同信号的应用

用 -l参数可以列出fuser所知的信号

[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可以发送它已知的信号给访问的指定文件进程而代替-k参数默认发送的SIGKILL,例如:只是挂起进程,那么发送HUP信号就可以了

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

用户     进程号 权限   命令

 /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文件的本地进程的进程号,请输入:

fuser /etc/passwd

要列出使用/etc/filesystems文件的进程的进程号和用户登录名,请输入:

fuser -u /etc/filesystems

总结

到此这篇关于Linux中fuser命令用法详解的文章就介绍到这了,更多相关Linux fuser内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • 25个 Git 进阶技巧(翻译)

    25个 Git 进阶技巧(翻译)

    这篇文章主要介绍了25个 Git 进阶技巧(翻译),需要的朋友可以参考下
    2015-05-05
  • logrotate实现日志切割方式(转储)

    logrotate实现日志切割方式(转储)

    这篇文章主要介绍了logrotate实现日志切割方式(转储),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • linux中Centos7的LVM磁盘扩容问题

    linux中Centos7的LVM磁盘扩容问题

    本篇文章给大家详细介绍了在linux中Centos7的LVM磁盘扩容问题,以及注意点做了分享,需要的朋友分享下吧。
    2018-02-02
  • Linux whatis命令的使用方法

    Linux whatis命令的使用方法

    这篇文章主要介绍了Linux whatis命令的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 使用yum查看工具lspci所在包并安装的方法(详解)

    使用yum查看工具lspci所在包并安装的方法(详解)

    下面小编就为大家带来一篇使用yum查看工具lspci所在包并安装的方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • Easypanel免费的VPS主机面板 可跨平台Linux和Windows

    Easypanel免费的VPS主机面板 可跨平台Linux和Windows

    Easypanel是一款免费的功能强大集开通虚拟主机,ftp空间,数据库等功能为一体的主机控制面板,具备跨平台(windows,linux),安全稳定、操作简便等特点,感兴趣的小伙伴们可以关注一下
    2017-07-07
  • Linux中有效地管理进程的8个命令

    Linux中有效地管理进程的8个命令

    这篇文章主要给大家介绍了关于Linux中有效地管理进程的8个命令,文中通过示例代码介绍的非常详细,对大家学习或者使用linux具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • Linux免密码远程登录的实例

    Linux免密码远程登录的实例

    这篇文章主要介绍了Linux免密码远程登录的实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • Linux下Python脚本自启动和定时启动的详细步骤

    Linux下Python脚本自启动和定时启动的详细步骤

    这篇文章主要介绍了Linux下Python脚本自启动和定时启动的详细步骤,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 如何配置Apache服务器中的虚拟机

    如何配置Apache服务器中的虚拟机

    Apache 的虚拟主机就是在一台服务器上运行多个网站,每个虚拟主机都可以绑定独立的域名,为这些域名可以指定单独的目录,访问这些域名的时候,Apache 会打开对应目录里面的东西。本文给大家介绍Apache服务器虚拟机的配置方法,感兴趣的朋友一起学习吧
    2016-04-04

最新评论