#linux包之psmisc之fuser命令
概述
[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命令的更多相关文章
- linux包之procps之sysctl命令
概述 [root@localhost ~]# rpm -qf /sbin/sysctlprocps-3.2.8-25.el6.x86_64 我们常常在 Linux 的 /proc/sys 目录下,手动 ...
- linux包之procps之vmstat命令
概述 [root@localhost ~]# rpm -qf /usr/bin/vmstatprocps-3.2.8-25.el6.x86_64 vmstat是一个很全面的性能分析工具,可以观察到系统 ...
- linux包之iproute之ss命令
概述 [root@localhost ~]# rpm -qa|grep iprouteiproute-2.6.32-31.el6.x86_64 当服务器的socket连接数量变得非常大时,无论是使用n ...
- #linux包之lsof之lsof命令
2015/3/18查漏补缺,反复练习命令,有不明白或疑问的地方直接看man手册页,英文解释的比较清楚 man lsof 已阅 概述 [root@localhost ~]# rpm -qa|grep l ...
- #linux包之tcpdump之tcpdump命令
概述 man tcpdump 已阅 yum install tcpdump Downloading Packages:(1/2): libpcap-1.4.0-1.20130826git2dbcaa1 ...
- 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 ...
- linux包之iproute之ip命令
[root@localhost ~]# rpm -qf /sbin/ipiproute-2.6.32-31.el6.x86_64ip 是个命令, ip 命令的功能很多!基本上它整合了 ifconfig ...
- linux包之sysstat之sar命令
要启动SAR,必须通过cron工具以周期性的间隔启动.安装sysstat包后,默认创建一个/etc/cron.d/sysstat文件,其默认内容为:# run system activity acco ...
- linux包之bash之内置命令ulimit
概述 [root@localhost ~]# rpm -qa|grep bashbash-4.1.2-15.el6_4.x86_64 linux limits.conf 配置 limits.conf ...
随机推荐
- 给宏基装WIN8.1系统之问题与解决方法(原创)
1.采用老毛桃U盘PE进入笔记本: 2.备份桌面文件以防丢失: 3.将下载好的Win8操作系统镜像加载到虚拟光驱,最好把操作系统拷贝到笔记本硬盘上,不然可能会出现意想不到的错误: 4.打开老毛桃桌面安 ...
- Python 第三方模块安装出现的问题和解决方案.
出现此类问题 A) ImportError: cannot import name '_win32stdio'B) ImportError: No module named 'win32api' 需要 ...
- iOS事件:触摸事件.运动事件.远程控制事件
iOS中,提供了事件处理:触摸事件,运动事件,远程控制事件.这很大得方便程序猿的工作. 这里先简单做个介绍: // // ViewController.m // demo // // Created ...
- Jumping Cows_贪心
Description Farmer John's cows would like to jump over the moon, just like the cows in their favorit ...
- Android沉浸式(侵入式)标题栏(状态栏)Status(二)
Android沉浸式(侵入式)标题栏(状态栏)Status(二) 附录1以xml写style实现了Android沉浸式(侵入式)状态栏(标题栏),同样以上层Java代码实现.在附录文章1的基础上 ...
- JS获取年月日
<script language="javascript"> var myDate = new Date(); myDate.getYear(); //获取当前年份(2 ...
- 换个心境搞IT,在IT职场如何打拼?
刚进入IT这行时,我也是从程序员做起.尤其是前两三个月里,那种感觉就像时时刻刻处于备战状态一样.我是一个在对自己的要求方面有洁癖的人,在没有任何经验的状态下,只有坚持苦干,把下发的每件编程任务做好,才 ...
- echarts在360中以及IE8浏览器不兼容:解决方案
参考:http://blog.csdn.net/www3300300/article/details/12992489 添加: <head> <meta http-equiv=&qu ...
- static 静态代码块 动态代码块 单例
1. 共享,不属于对象,属于类,类成员变量,任何一个类的对象都有该属性,一旦被修改,则其他对象中的该属性也被更改. 2. 类中方法是static的,可以通过类名直接访问,不用new一个该类的对象. 3 ...
- 【Avalon】escape
[\uD800-\uDBFF][\uDC00-\uDFFF] var rsurrogate = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g var rnoalphanumeri ...