zoukankan      html  css  js  c++  java
  • fuser 命令小结

    fuser 概述

    fuser命令是用来显示所有正在使用着指定的file, file system 或者 sockets的进程信息。

    例一:

    #fuser –m –u /mnt/usb1 
    /mnt/usb1:  1347c(root)  1348c(guido)  1349c(guido)

    在例子一中,使用了-m和-u选项,用来查找所有正在使用/mnt/usb1的所有进程的PID已经该进程的OWNER,如1347c(root),其中1347是进程PID,root是该进程的OWNER。

    fuser会显示正在使用指定的file,file system 或者 sockets的进程的PID。在默认的显示模式下,每个文件名之后会跟随一个字符,用来指示当前的访问类型。

    如下所示:

    current directory.executable being run.open file.open file for writing.root directory.mmap'ed file or shared library

    同时fuser 可以用来查找哪些进程正在使用指定的network port。

    [root@bl25p-19 /]# fuser -v -n tcp 111

                               USER        PID   ACCESS   COMMAND 
    111/tcp:             rpc        2848   F....         portmap 

     

    fuser 的返回值:

    fuser如果没有找到任何进程正在使用指定的file, filesystem 或 socket, 或者在查找过程中发生了fatal error,则返回non-zero 值。

    fuser如果找到至少一个进程正在使用指定的file, filesystem 或 socket,则返回zero。

     

    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的其他有用的参数

    -k 
    kills all process accessing a file. For example fuser -k /path/to/your/filename kills all processes accessing this directory without confirmation. Use -i for confirmation
    -i 
    interactive mode. Prompt before killing process
    -v 
    verbose.
    -u 
    append username
    -a 
    display all files
    -m 
    name specifies a file on a mounted file system or a block device that is mounted. All processes accessing files on that file system are listed. If a directory file is specified, it is automatically changed to name/. to use any file system that might be mounted on that directory.
     

    参考:

    [1] man fuser

    [2] http://en.wikipedia.org/wiki/Fuser_%28Unix%29

    转载:http://www.cnblogs.com/yuboyue/archive/2011/07/18/2109838.html

  • 相关阅读:
    把Linq查询返回的var类型的数据 转换为DataTable EF连接查询
    无法更新 EntitySet 因为它有一个 DefiningQuery
    MVC上传文件
    MySql删除表、数据
    LINQ to Entities 不支持 LINQ 表达式节点类型“ArrayIndex”。
    MVC仓储使用join
    MVC仓储执行存储过程报错“未提供该参数”
    Newtonsoft.Json自动升级版本号,导致dll冲突
    MVC中构建Linq条件、排序、Selector字段过滤
    AutoMapper
  • 原文地址:https://www.cnblogs.com/future2012lg/p/3935169.html
Copyright © 2011-2022 走看看