• fuser ---显示出当前程序使用磁盘上的某个文件


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

    fuser只把PID输出到标准输出,其他的都输出到标准错误输出。

    a 显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示。 
    -c 和-m一样,用于POSIX兼容。 
    -k 杀掉访问文件的进程。如果没有指定-signal就会发送SIGKILL信号。结合 –signal

    -signal 使用指定的信号,而不是用SIGKILL来杀掉进程。可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略。

    -l 列出所有已知的信号名称。 
    -i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略。 
    -m name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。这样所有访问这个文件或者文件系统的进程都会被列出来。如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统。 
    -n space 指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口,可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space (即形如:80/tcp之类的表示)。 
    -s 静默模式,这时候-u,-v会被忽略。-a不能和-s一起使用。  
    -u 在每个PID后面添加进程拥有者的用户名称。 
    -v 详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PID为kernel.

    假设无法卸载的设备为/dev/sdb1 
    1)运行下面命令看一下哪个用户哪个进程占用着此设备 
    fuser -m -v /dev/sdb1

    2)运行下面命令杀掉占用此设备的进程 
    fuser -m -v -k /dev/sdb1 
    或者fuser -m -v -k -i  /dev/sdb1(每杀掉一下进程会让你确认) 
    3)再umount

    查看那些程序使用tcp的80端口: 
    $fuser -n tcp 80 
    或$fuser -v -n tcp 80 
    或$fuser -v 80/tcp 
    这里,后两种方式显示的信息比较全,因为有了-v选项

    # fuser -v 111/udp 111/tcp 
                         用户     进程号 权限   命令
    111/udp:             rpc         968 F.... rpcbind
    111/tcp:             rpc         968 F.... rpcbind
  • 相关阅读:
    用树莓派USB摄像头做个监控
    防火墙控制IP入站规则,控制可访问服务。
    Relational Database (Enhanced ER & Model Design)
    C 语言 #if 指令
    C 语言:#define 指令(宏定义)
    C 语言:#undef 指令
    《网络多人游戏架构与编程》之序列化、RPC、网络拓扑
    《网络多人游戏架构与编程》之游戏引擎、云托管
    《网络多人游戏架构与编程》之伯克利套接字
    《网络多人游戏架构与编程》之延迟、抖动、可靠、可扩展性
  • 原文地址:https://www.cnblogs.com/jianlilistu/p/10036825.html
Copyright © 2020-2023  润新知