概述

[root@localhost ~]# rpm -qf /sbin/fuser
psmisc-22.6-15.el6_0.1.x86_64

先说 fuser的作用,fuser能识别出正在对某个文件或端口访问的进程,大家想一下,还有哪个命令具备这个功能? 没错,是lsof,我们前面讲过, lsof能够找出正在对指定文件访问的进程,
那么它们两者之间有何区别?fuser有一个特别的用法在于它可以一次杀死那些正在访问指定文件的进程。

解释
fuser会显示正在使用指定的file,file system 或者 sockets的进程的PID。在默认的显示模式下,每个文件名之后会跟随一个字符,用来指示当前的访问类型。
fuser命令是用来显示所有正在使用着指定的file, file system 或者 sockets的进程信息。
[root@coreserv ~]# fuser /var/log/messages file
[root@CentOS5 ~]# fuser -m /dev/sda3 file system
[root@coreserv ~]# fuser /var/run/acpid.socket sockets

s 将此文件作为共享库(或其他可装载对象)使用
c current directory. 将此文件作为当前目录使用。
e executable being run. 将此文件作为程序的可执行对象使用。
f open file.
F open file for writing.
r root directory. 将此文件作为根目录使用。
m mmap'ed file or shared library

-m 表示指定文件所在的文件系统或者块设备(处于 mount 状态)。所有访问该文件系统的进程都被列出。假如指定了一个目录,则自动在后面加上 '/' 表示挂载在该目录上的文件系统
使用了-m和-u选项,用来查找所有正在使用/dev/sda3的所有进程的PID以及该进程的所有者,如1347c(root),其中1347是进程PID,root是该进程的所有者。
-s 表示安静模式。-u 和 -v 会被忽略,-a 不能和 -s 一起使用
-n 指定 sockets 的协议类型。可以是 file(默认)、udp、tcp。你甚至可以使用 '<port>/<proto>' 的简写方式,只要不存在异义的话,在端口方面,你可以用端口名或者数字表示
-u 表示在 PID 后面加上进程的 owner
-v 表示 verbose 模式。进程以ps 的方式显示,包括 PID、USER、COMMAND、ACCESS 字段,如果是内核访问的(例如 mount point、swap 文件),则显示为 kernel 而不是 pid
fuser如果没有找到任何进程正在使用指定的file, filesystem 或 socket, 或者在查找过程中发生了fatal error,则返回non-zero 值。
fuser如果找到至少一个进程正在使用指定的file, filesystem 或 socket,则返回zero。
可用# echo $?来证实

样例
fuser 只输出 PID 到 stdout ,其他都送给 stderr
fuser -km /home
fuser -v -n tcp 111
fuser http/tcp

-k 表示杀死访问指定文件的进程。默认发送 SIGKILL (-9)信号。fuser 进程永远不会杀死自己。
fuser通常被用在诊断系统的“resource busy”问题,通常是在你希望umount指定的挂载点得时候遇到。如果你希望kill所有正在使用某一指定的file, file system or sockets的进程的时候,你可以使用-k option。
fuser -k /path/to/your/filename
这时fuser会向所有正在使用/path/to/your/filename的进程发送SIGKILL。如果你希望在发送之前得到提示,可以使用-i选项。
fuser -k -i /path/to/your/filename
通常做法
fuser -l
fuser可以发送它已知的信号给访问的指定文件进程而代替-k参数,默认发送的SIGKILL
fuser -v /root/install.log
fuser -SIGHUP /root/install.log
fuser -v /root/install.log

lsof |grep unix 查找套接字
文件级是指有文件系统的。 需要挂载才能使用
块级是指裸设备,没有任何文件系统。 需要挂载才能使用

#linux包之psmisc之fuser命令的更多相关文章

  1. linux包之procps之sysctl命令

    概述 [root@localhost ~]# rpm -qf /sbin/sysctlprocps-3.2.8-25.el6.x86_64 我们常常在 Linux 的 /proc/sys 目录下,手动 ...

  2. linux包之procps之vmstat命令

    概述 [root@localhost ~]# rpm -qf /usr/bin/vmstatprocps-3.2.8-25.el6.x86_64 vmstat是一个很全面的性能分析工具,可以观察到系统 ...

  3. linux包之iproute之ss命令

    概述 [root@localhost ~]# rpm -qa|grep iprouteiproute-2.6.32-31.el6.x86_64 当服务器的socket连接数量变得非常大时,无论是使用n ...

  4. #linux包之lsof之lsof命令

    2015/3/18查漏补缺,反复练习命令,有不明白或疑问的地方直接看man手册页,英文解释的比较清楚 man lsof 已阅 概述 [root@localhost ~]# rpm -qa|grep l ...

  5. #linux包之tcpdump之tcpdump命令

    概述 man tcpdump 已阅 yum install tcpdump Downloading Packages:(1/2): libpcap-1.4.0-1.20130826git2dbcaa1 ...

  6. linux包之gdb之gdb命令与core文件产生

    gdb-7.2-64.el6_5.2.x86_64/usr/bin/gcore/usr/bin/gdb/usr/bin/gdb-add-index/usr/bin/gdbtui/usr/bin/gst ...

  7. linux包之iproute之ip命令

    [root@localhost ~]# rpm -qf /sbin/ipiproute-2.6.32-31.el6.x86_64ip 是个命令, ip 命令的功能很多!基本上它整合了 ifconfig ...

  8. linux包之sysstat之sar命令

    要启动SAR,必须通过cron工具以周期性的间隔启动.安装sysstat包后,默认创建一个/etc/cron.d/sysstat文件,其默认内容为:# run system activity acco ...

  9. linux包之bash之内置命令ulimit

    概述 [root@localhost ~]# rpm -qa|grep bashbash-4.1.2-15.el6_4.x86_64 linux limits.conf 配置 limits.conf ...

随机推荐

  1. swift简介

    概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...

  2. php大力力 [036节] 后台系统的登录页面界面做完啦

    php大力力 [036节] 后台系统的登录页面界面做完啦 我认为做的不错,我就先不上截图啦 要你的祝福 分布注册 Twitter Login Or Signup Form 藤藤每日一练——172个Ic ...

  3. JS - The react framework

    这几天因为赶时间 , 所以理解上可能有许多的误差 , 如果你不幸点进来了 , 请不要看我的代码 , 这几天我会重新修改 , 然后把错误的不足的 全部修正一下 . /hwr/src/index.js i ...

  4. PHP使用mysqli操作MySQL数据库

    PHP的 mysqli 扩展提供了其先行版本的所有功能,此外,由于 MySQL 已经是一个 具有完整特性的数据库服务器 , 这为PHP 又添加了一些新特性 . 而 mysqli 恰恰也支持了 这些新特 ...

  5. Android AIDL使用详解

    1.什么是aidl:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间 ...

  6. 电话 SMS 邮件 网页 AppStore

    //调用safar打开网页 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.cnbl ...

  7. Play Framework常用标签list,set,如何遍历list、map类型数据

    最近一段时间的项目都是在Play这个框架上进行开发的,挺强大的,但不足之处也挺多的.今天分享下play中强大的标签,遍历list,map类型的数据的用法. 遍历单纯的list数据,例如:List< ...

  8. java 基本类型

    1 常量 整数 byte 1字节 8位 -27~27-1 0111 1111 ~1000 0000 short 2 16     int 4 32     long 8 64     1111 111 ...

  9. shell脚本 gawk语言 综采话单 对账 字段核对

    今天被分配到对账组下的字段程序的了解和修改,在 SecureCRT 下的 run.sh 是字段对账的主程序,其中run.sh文件中含有gawk的代码. 程序的主要功能为 有两个文件夹 source存的 ...

  10. TypeError: The CanvasRenderingContext2D.webkitBackingStorePixelRatio getter can only be used on instances of CanvasRenderingContext2D

    ios10: CanvasRenderingContext2D.prototype.webkitBackingStorePixelRatio 报异常