Linux-fuser命令详解

Linux-fuser命令详解


fuser:使用文件或者套节字来表示识别进程。

Options

-a   # 注释 :-a 显示所有指定文件的情况,即使没有进程访问它们。

-c
Same as -m option, used for POSIX compatibility.

-f
Silently ignored, used for POSIX compatibility.

-k
# 注释 :-k 表示杀死访问指定文件的进程。默认发送 SIGKILL (-9)信号。fuser 进程永远不会杀死自己。
# 但可能杀死其他 fuser 进程。在尝试杀死进程前,fuser 会改变 euid 为 ruid

-i
# 注释 :-i 表示交互模式,在杀死进程前会提示。必须和 -k 合用

-l
# 注释 :-l 列出所有已知的信号

-m
# 注释:-m 表示指定文件所在的文件系统或者块设备(处于 mount 状态)。所有访问该文件系统的进程都被列出。
# 假如指定了一个目录,则自动在后面加上 '/'  表示该挂载在该目录上的文件系统

-n space
# 注释 :-n 指定 sockets 的协议类型。可以是 file(默认)、udp、tcp 。
# 你甚至可以使用 '/' 的简写方式,只要不存在异义的话

-s
# 注释 :-s 表示安静模式。-u 和 -v 会被忽略,-a 不能和 -s 一起使用

-signal
# 注释:- 指定信号

-u
# 注释 :-u 表示在 PID 后面加上进程的 owner
 
     
-v
# 注释 :-v 表示 verbose 模式。进程以  ps 的方式显示,包括 PID、USER、COMMAND、ACCESS 字段
# 如果是内核访问的(例如 mount point、swap 文件),则显示为 kernel 而不是 pid

-V
Display version information.

-4
Search only for IPv4 sockets. This option must not be used with the -6 option and only has an effect with the tcp and udp namespaces.

-6
Search only for IPv6 sockets. This option must not be used with the -4 option and only has an effect with the tcp and udp namespaces.

-
# 注释:‘-’ 表示重置所有选项并把信号设置为 SIGKILL




常用的两个功能:查看需要的进程和要杀死我查到的进程。

比如想umount光驱或者其他文件系统的的时候,结果系统提示设备正在使用或者正忙,可是又找不到到底谁使用了。这个时候fuser可派上用场了。

[root@rac1 tmp]#  fuser -vm /usr/local/

                     USER        PID ACCESS COMMAND
/usr/local/:         root          1 .rce. init
                     root          2 .rc.. migration/0
                     root          3 .rc.. ksoftirqd/0
                     root          4 .rc.. migration/1
                     root          5 .rc.. ksoftirqd/1
                     root          6 .rc.. migration/2
                     root          7 .rc.. ksoftirqd/2
                     root          8 .rc.. migration/3
                     root          9 .rc.. ksoftirqd/3
                     root         10 .rc.. events/0
                     root         11 .rc.. events/1
                     root         12 .rc.. events/2
                     root         13 .rc.. events/3

在使用fuser -km 就可以杀死进程,同时也可以使用交互式的-i参数,一个一个杀死。
 

# 注释 :fuser 显示使用指定文件或者文件系统的进程的 pid ,默认会在每个 pid 后面加上一个字符表示访问的方式 :
 
#     -)1、c :表示 current directory 。表示进程是在该目录下启动的。
 
#     -)2、e :表示是可执行的程序
 
#     -)3、f :打开文件。默认不显示
 
#     -)4、r :root 目录,表示该目录是该进程的 / 目录
 
#     -)5、m :表示 mmap 过的文件或者共享库


# 注释 :如果指定文件没有任何进程访问,或者出现严重错误,fuser 返回非 0 的 exit status。

# 如果至少存在一个进程,则 fuser 返回 0

# 注释:为了查找使用某个 TCP /UDP sockets 的进程,你必须用 -n 指定 (name space)tcp 还是 udp 。

# 默认 fuser 会查找 ipv4 和 ipv6 sockets 。你可以使用 -4 或者 -6 来改变选项

# sockets 可以按照 local port:remote_host:remote_port 的方式来指定。每个字段都是可选的,但不能省略 ','

[lcl_port][,[rmt_host][,[rmt_port]]]

Either symbolic or numeric values can be used for IP addresses and port numbers.

# 注释 ;在端口方面,你可以用端口名或者数字表示

fuser outputs only the PIDs to stdout, everything else is sent to stderr.

# 注释 :fuser 只输出 PID 到 stdout ,其他都送给 stderr


举例:

fuser -km /home
 
kills all processes accessing the file system /home in any way.
 
# 注释 :fuser -km /home 杀死所有访问 /home 文件系统的进程

if fuser -s /dev/ttyS1; then :; else something; fi

    invokes something if no other process is using /dev/ttyS1.

fuser telnet/tcp

    shows all processes at the (local) TELNET port.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29500582/viewspace-1357511/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29500582/viewspace-1357511/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值