zoukankan      html  css  js  c++  java
  • yum 安装fuser命令

    yum install -y psmisc

    转自:https://www.cnblogs.com/saneri/p/5465718.html

    有时候我们需要umount某个挂载目录时会遇到如下问题:

    1
    2
    [root@localhost /]# umount /data/
    umount.nfs: /data: device is busy

    通过这条命令查看:

    1
    2
    3
    4
    [root@localhost /]# fuser -m -v /data/
                         用户     进程号 权限   命令
    /data/:              root       2798 ..c.. bash
                         root       2996 ..c.. su

    -v 表示 verbose 模式。进程以 ps 的方式显示,包括 PID、USER、COMMAND、ACCESS 字段

    -m 表示指定文件所在的文件系统或者块设备(处于 mount 状态)。所有访问该文件系统的进程都被列出。

    如上所示,有两个进程占用了,将其kill掉,再重新取消挂载。

    1
    2
    3
    4
    [root@localhost /]# kill -9 2798
    [root@localhost /]# kill -9 2996
    [root@localhost /]# umount /data/
    [root@localhost /]#

    成功!

    fuser 概述

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [root@gc-statis2 ]# fuser -m -v tests/
                         用户     进程号 权限   命令
    tests/:              root       7300 F.ce. php-fpm
                         www        7301 ..ce. php-fpm
                         www        7302 ..ce. php-fpm
                         www        7303 ..ce. php-fpm
                         www        7304 ..ce. php-fpm
                         www        7305 ..ce. php-fpm
                         www        7306 ..ce. php-fpm
                         www        7307 ..ce. php-fpm
                         www        7308 ..ce. php-fpm
                         www        7309 ..ce. php-fpm              
                         root      18891 ..c.. bash

    同时fuser 可以用来查找哪些进程正在使用指定的端口(network port).

    1
    2
    3
    4
    [root@gc-statis2 ]# fuser -v -n tcp 80
                         用户     进程号 权限   命令
    80/tcp:              root       7975 F.... nginx
                         www        7976 F.... nginx

    fuser 常用场景

    fuser通常被用在诊断系统的“resource busy”问题,通常是在你希望umount指定的挂载点得时候遇到。 如果你希望kill所有正在使用某一指定的file, file system or sockets的进程的时候,你可以使用-k option。

    1
    fuser –k  /path/to/your/filename  

    这时fuser会向所以正在使用/path/to/your/filename的进程发送SIGKILL。如果你希望在发送之前得到提示,可以使用-i 选项。

    1
    fuser –k –i /path/to/your/filename
  • 相关阅读:
    【SQL】通过Sql实现根据分组合并指定列内容的查询 SamWang
    [转]SQLServer中全文搜索与Like的差异分析
    【笔记】《C#高效编程改进C#代码的50个行之有效的办法》第1章C#语言习惯(1)属性的特性以及索引器(SamWang)
    [转]SqlServer全文索引实例
    [转]visual studio2005中文版无法打开项目文件:*.csproj,提示“此安装不支持该项目类型”的解决办法
    [转]李天平:程序人生成长发展中的一些感悟
    【改进】C# WinForm捕获全局异常 SamWang
    Windows 7 虚拟无线网卡(microserof virtual wifi miniport adapter)功能的使用
    VB.Net 串口通信示例
    VB.Net 串口通信用法
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/9995518.html
Copyright © 2011-2022 走看看