• Linux系统如何使用Fuser命令


    本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:Linux系统如何使用Fuser命令

    什么是Fuser命令?

    fuser命令是一个非常聪明的unix实用程序,用于查找正在使用某个文件、目录或socket的进程。 它还提供有关拥有该进程的用户和访问类型的信息。。fuser工具显示了使用指定文件或文件系统的每个进程的进程ID(PID)。

    安装

    如果你的精简版运行fuser提示如下信息:

    -bash: fuser: command not found
    

    请执行如下命令安装:

    [winbert@winbert-server ~]$ sudo yum -y install psmisc
    

    如何使用fuser命令?

    man命令可用于查看任何命令的帮助手册,但是学习新知识(尤其是linux命令)的最佳方法是通过阅读真实的示例,并且不断地在终端中键入命令。 在终端中运行以下命令,以获取有关fuser实用程序的使用选项的信息。

    [winbert@winbert-server ~]$ fuser
    No process specification given
    Usage: fuser [-fMuvw] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME...
           fuser -l
           fuser -V
    Show which processes use the named files, sockets, or filesystems.
    
      -a,--all              display unused files too
      -i,--interactive      ask before killing (ignored without -k)
      -k,--kill             kill processes accessing the named file
      -l,--list-signals     list available signal names
      -m,--mount            show all processes using the named filesystems or block device
      -M,--ismountpoint     fulfill request only if NAME is a mount point
      -n,--namespace SPACE  search in this name space (file, udp, or tcp)
      -s,--silent           silent operation
      -SIGNAL               send this signal instead of SIGKILL
      -u,--user             display user IDs
      -v,--verbose          verbose output
      -w,--writeonly        kill only processes with write access
      -V,--version          display version information
      -4,--ipv4             search IPv4 sockets only
      -6,--ipv6             search IPv6 sockets only
      -                     reset options
    
      udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]
    

    如何查看使用某个目录的进程

    fuser序可以与-v选项一起使用,该选项以详细模式运行该工具。 verbose选项用于在计算机屏幕上生成详细输出,因此用户可以实时查看实用程序正在执行的操作。

    [winbert@winbert-server ~]$ fuser -v .
                         USER        PID ACCESS COMMAND
    /home/winbert:       winbert    1435 ..c.. bash
    

    上面的输出显示,以详细模式运行时,fuser会提供有关USERPIDACCESSCOMMAND的信息。 ACCESS下的c字符表示访问类型,表示“当前目录”。 访问类型很多,例如e(正在运行的可执行文件),r(根目录),f(打开文件。在默认显示模式下省略f),F(用于写入的打开文件,在默认显示模式下省略F)和 m(mmap文件或共享库)。

    查看使用你tcp或udp套接字的进程?

    有时您需要使用TCP和UDP套接字查找进程。 为了查找这些进程,需要使用-n选项。 -n选项用于选择相应的名称空间。

    [root@huidukongjian-h4 docker]# fuser -v -n tcp 80
                         USER        PID ACCESS COMMAND
    80/tcp:              root      27411 F.... docker-proxy
    

    默认情况下,fuser将同时在IPv6和IPv4套接字中查找,但是可以使用-4-6选项更改默认选项。 -4选项代表IPv4-6选项代表IPv6。 请注意,fuser仅将PID输出到stdout,其他所有内容都发送到stderr。

    fuser -v -n tcp 80命令的结果显示,使用docker的进程的进程ID为27411,而用于启动该进程的命令为docker-proxy。 进程ID(PID)可以以多种方式使用,其中之一是进程终止。 与PID一起使用时,kill命令根据该进程ID终止进程。 fuser还可用于终止访问特定文件的进程。 在以下命令中,-k选项用于终止正在使用在端口123上运行的tcp侦听器的进程。为确保用户不会杀死错误的进程,使用-i选项询问用户是否 在终止进程之前进行确认。

    fuser -k  123/tcp
    

    使用带有-i选项的fuser -k命令在终止进程之前要求用户进行确认。 用户可以用y回答“是”,或者用N回答不杀死进程。

    fuser -i -k 123/tcp
    123/tcp:             12216
    Kill process 12216 ? (y/N)
    Use The -6 Option To Look For IPv6 Sockets.
    

    以下命令以详细模式使用fuser,并尝试查找在端口123上运行的IPv6套接字。

    fuser -v -n tcp -6 123
    

    查找占用某个文件系统的进程

    -m选项可与fuser命令一起使用,以查找访问文件文件系统上文件的进程。 此选项需要文件名作为输入参数。 -m选项非常有用,尤其是当用于发现正在访问文件系统的进程并标识要杀死的进程时。

    以下命令显示所有访问“ example.txt”所在的文件系统的进程。 仔细查看-m选项如何与fuser一起使用。

    [root@huidukongjian-h4 docker]# fuser -v -m data/v2/config.json 
                         USER        PID ACCESS COMMAND
    /root/docker-v2/data/v2/config.json:
                         root     kernel mount /
                         root          1 .rce. systemd
                         root          2 .rc.. kthreadd
                         root          3 .rc.. rcu_gp
                         root          4 .rc.. rcu_par_gp
                         root          6 .rc.. kworker/0:0H-kbl
                         root          8 .rc.. mm_percpu_wq
                         root          9 .rc.. ksoftirqd/0
                         root         10 .rc.. rcu_sched
                         root         11 .rc.. migration/0
                         root         12 .rc.. watchdog/0
                         root         13 .rc.. cpuhp/0
                         root         16 .rc.. netns
                         root         17 .rc.. kauditd
                         root         18 .rc.. khungtaskd
                         root         19 .rc.. oom_reaper
                         root         20 .rc.. writeback
                         root         21 .rc.. kcompactd0
                         root         22 .rc.. ksmd
                         root         23 .rc.. khugepaged
                         root         24 .rc.. crypto
                         root         25 .rc.. kintegrityd
                         root         26 .rc.. kblockd
                         root         27 .rc.. tpm_dev_wq
                         root         28 .rc.. md
                         root         29 .rc.. edac-poller
                         root         30 .rc.. watchdogd
                         root         42 .rc.. kswapd0
                         root         93 .rc.. kthrotld
                         root         94 .rc.. acpi_thermal_pm
                         root         95 .rc.. kmpath_rdacd
                         root         96 .rc.. kaluad
                         root         97 .rc.. ipv6_addrconf
                         root         98 .rc.. kstrp
                         root        326 .rc.. scsi_eh_0
                         root        327 .rc.. scsi_tmf_0
                         root        329 .rc.. kworker/0:1H-kbl
                         root        361 .rc.. ata_sff
                         root        363 .rc.. scsi_eh_1
                         root        365 .rc.. scsi_tmf_1
                         root        366 .rc.. scsi_eh_2
                         root        367 .rc.. scsi_tmf_2
                         root        387 .rc.. xfsalloc
                         root        390 .rc.. xfs_mru_cache
                         root        391 .rc.. xfs-buf/vda1
                         root        394 .rc.. xfs-data/vda1
                         root        395 .rc.. xfs-conv/vda1
                         root        396 .rc.. xfs-cil/vda1
                         root        397 .rc.. xfs-reclaim/vda
                         root        398 .rc.. xfs-log/vda1
                         root        399 .rc.. xfs-eofblocks/v
                         root        400 .rc.. xfsaild/vda1
                         root        486 .rce. systemd-journal
                         rpc         541 .rce. rpcbind
                         root        543 Frce. auditd
                         root        545 .rce. sedispatch
                         root        558 .rc.. rpciod
                         root        559 .rc.. kworker/u3:0
                         root        561 .rc.. xprtiod
                         root        582 Frce. sssd
                         polkitd     585 .rce. polkitd
                         root        589 .rce. rngd
                         dbus        593 frce. dbus-daemon
                         chrony      612 .rce. chronyd
                         root        652 Frce. sssd_be
                         root        668 Frce. sssd_nss
                         root        671 .rc.. ttm_swap
                         root        672 .rc.. nfit
                         root        675 frce. systemd-logind
                         root        683 Frce. gssproxy
                         root        740 frce. NetworkManager
                         root        743 Frce. tuned
                         root        814 frce. systemd-udevd
                         root        889 frce. sshd
                         root        890 Frce. rsyslogd
                         root        895 frce. agetty
                         root        898 frce. crond
                         root        899 frce. agetty
                         root      21821 .rc.. kworker/u2:0-flu
                         root      25475 frce. sshd
                         root      25480 .rce. systemd
                         root      25485 frce. (sd-pam
                         root      25491 frce. sshd
                         root      25492 frce. bash
                         root      25705 Frce. containerd
                         root      25706 Frce. dockerd
                         root      26375 .rc.. kworker/u2:1-eve
                         root      27251 Fr.e. containerd-shim
                         root      27267 F...m v2
                         root      27273 Fr.e. containerd-shim
                         root      27295 ....m sh
                         root      27400 .rce. docker-proxy
                         root      27411 .rce. docker-proxy
                         root      27416 Fr.e. containerd-shim
                         root      27432 ....m sh
                         root      27478 ....m sh
                         root      27479 F...m nginx
                         root      27480 ....m sleep
                         (unknown)  27481 F...m nginx
                         root      27561 ....m sleep
                         root      27705 .rc.. kworker/0:0-xfs-
                         root      27765 .rc.. kworker/0:1-xfs-
                         root      27836 .rc.. kworker/0:2-even
                         root      27860 frce. sshd
                         root      27883 frce. sshd
                         sshd      27884 frce. sshd
    

    fuser还可用于将特定指令发送到某个进程。 当与-k选项一起使用时,fuser命令将KILL指令发送给进程。 有很多指令可以发送给运行中的进程,-l选项有助于查找可以与fuser一起使用的指令列表。

    [root@huidukongjian-h4 docker]# fuser -l
    HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT
    CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
    

    本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:Linux系统如何使用Fuser命令

  • 相关阅读:
    [luogu p1996] 约瑟夫问题
    [luogu p1098] 字符串的展开
    [luogu p1035] 级数求和
    [luogu p1004] 方格取数
    [luogu p3383]【模板】线性筛素数
    [luogu p1223] 排队接水
    [luogu p1002] 过河卒
    [luogu p1001] A+B Problem
    Java BIO/NIO(Non-blocking I/O)详解
    Linux页框&伙伴算法以及slab机制
  • 原文地址:https://www.cnblogs.com/cobcmw/p/13205044.html
Copyright © 2020-2023  润新知