fuser:identify processes using files or sockets 查看文件或sockets或文件系统被哪些进程使用
fuser展示指定文件或文件系统被进程使用的pid和一个特定的类型标识。
c current directory.当前目录
e executable being run.可执行程序正在执行
f open file. f is omitted in default display mode. 打开的文件,默认不显示
F open file for writing. F is omitted in default display mode. 写文件,默认不显示
r root directory.根目录
m mmap’ed file or shared library 映射文件或共享库
示例:
[root@WebA-136~]#fuser-m/dev/sda2
/dev/sda2:1004e1080e1087e1482e1616e1620m5879e5917e7919e9413e9455e9459m9474e
[root@WebA-136~]#ps-ef|grep9459
root94599455018:14pts/200:00:00-bash
root94749459018:14pts/200:00:00vim/etc/passwd
root95281620018:25pts/000:00:00grep9459
[root@WebA-136~]#
常用选项:
-m 指定一个文件系统或一个块设备,列出当前文件系统上的文件由哪些进程使用
-a 列出指定的文件被哪些进程使用
-c 和-m一样,用于POSIX兼容
-k 杀掉访问文件的进程
-i 杀掉进程时需要询问进程用户,与-k同时使用
-l 列出所有已知的信号信息
-s 静默模式,-v -u不生效
-v 详细模式
-u 显示进程用户名
-n space 指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口, 可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space (即形如:80/tcp之类的表示)
-4 与-n一起使用
-6 与-n一起使用
-a选项示例:
[root@WebA-136~]#cattest.sh
#!/bin/bash
#
foriin{1..100}
do
echo'1'>>a.log
sleep10
done
[root@WebA-136~]#fuser-atest.sh
test.sh:9563
[root@WebA-136~]#ps-ef|grep9563
root95639459018:34pts/200:00:00/bin/bash./test.sh
root95739563018:35pts/200:00:00sleep10
root95761620018:35pts/000:00:00grep9563
[root@WebA-136~]#
-m选项:
[root@WebA-136~]#fuser-m/dev/sda6
/dev/sda6:9563rce#上面示例的pid
-k选项:若不指定signal,默认发送SIGKILL
[root@WebA-136~]#fuser-atest.sh
test.sh:9609
[root@WebA-136~]#fuser-ktest.sh
test.sh:9609
[root@WebA-136~]#fuser-atest.sh
test.sh:
[root@WebA-136~]#./test.sh
已杀死
[root@WebA-136~]#
-l选项
[root@WebA-136~]#fuser-l
HUPINTQUITILLTRAPABRTIOTBUSFPEKILLUSR1SEGVUSR2PIPEALRMTERM
STKFLTCHLDCONTSTOPTSTPTTINTTOUURGXCPUXFSZVTALRMPROFWINCHIOPWRSYS
UNUSED
[root@WebA-136~]#
站长资讯网