本文不再更新,可能存在内容过时的情况,实时更新请访问原地址: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命令

Linux系统如何使用Fuser命令的更多相关文章

  1. Linux系统下利用wget命令把整站下载做镜像网站

    Linux系统下利用wget命令把整站下载做镜像网站 2011-05-28 18:13:01 | 1次阅读 | 评论:0 条 | itokit  在linux下完整的用wget命令整站采集网站做镜像 ...

  2. 第九章、文件与文件系统的压缩与打包 Linux 系统常见的压缩命令

    Linux 系统常见的压缩命令: 在Linux中,压缩文件的扩展名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2』 Linux 支持的压缩命令非常多,且不同 ...

  3. 监控 Linux 系统的 7 个命令行工具

    监控 Linux 系统的 7 个命令行工具: " 深入 关于Linux最棒的一件事之一是你能深入操作系统,来探索它是如何工作的,并寻找机会来微调性能或诊断问题.这里有一些基本的命令行工具,让 ...

  4. Linux系统下的shutdown命令用于安全的关闭/重启计算机

    Linux系统下的shutdown命令用于安全的关闭/重启计算机,它不仅可以方便的实现定时关机,还可以由用户决定关机时的相关参数.在执行shutdown命令时,系统会给每个终端(用户)发送一条屏显,提 ...

  5. linux系统上传下载命令rz和sz的教程

    (一)安装方法汇总(注意:一下命令如果没有权限的需要在每个命令前面加一个sudo) 1.安装方法(推荐) sudo yum install lrzsz 2.在安装Linux系统时选中“DialupNe ...

  6. [fw]Linux系统使用time计算命令执行的时间

    Linux系统使用time计算命令执行的时间 当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短的.所有类UNIX系统都包含time命令,使用这个命令可以统计时间消耗.例 ...

  7. Linux系统中有趣的命令(可以玩小游戏)

    Linux系统中有趣的命令(可以玩小游戏) 前言 最近,我在看一些关于Linux系统的内容,这里面的内容是真的越学越枯燥,果然学习的过程还是不容易的.记得前几个月初学Linux时,有时候就会碰到小彩蛋 ...

  8. 【转载】在Linux系统下用dd命令制作ISO镜像U盘启动盘

    #### 将U盘插入USB接口 #umount /dev/sdb* #dd if=/iso存放路径/XXX.iso of=/dev/sdb bs=1M ##### [转载]在Linux系统下用dd命令 ...

  9. linux系统执行多条命令,linux系统执行复合命令

    在操作linux系统的时候,你是否遇到过打开一个目录,然后查看一个文件里面的内容. 我们可以使用命令   cd + 目录     cat + 文件名,我们需要输入两次,点击两次 enter   有没有 ...

随机推荐

  1. jchdl - GSL实例:FullAdder

    https://mp.weixin.qq.com/s/CtT08xZON0YxnheqDM2FAw 全加器是能够计算低位进位的二进制加法电路.与半加器相比,全加器不只考虑本位计算结果是否有进位,也考虑 ...

  2. Entity FrameWork 实现分页

    SQl语句进行分页 SQL语句进行分页主要是应用Entity FrameWork的SqlQuery()传入SQL语句进行查询时分页. 效果展示. 页面代码展示,显示是用Repeater控件进行动态显示 ...

  3. Java实现 蓝桥杯 算法提高 求arccos值

    算法提高 7-2求arccos值 时间限制:10.0s 内存限制:256.0MB 提交此题 问题描述 利用标准库中的cos(x)和fabs(x)函数实现arccos(x)函数,x取值范围是[-1, 1 ...

  4. java实现 蓝桥杯 算法提高 Problem S4: Interesting Numbers 加强版

    1 问题描述 Problem Description We call a number interesting, if and only if: 1. Its digits consists of o ...

  5. java实现排他平方数

    题目标题: 排它平方数 小明正看着 203879 这个数字发呆. 原来,203879 * 203879 = 41566646641 这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位 ...

  6. vi命令总结

    VI常用技巧 ​ VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,但是因为它的命令集众多,很多人都不习惯使用它,其实您只需要掌握基本命令,然后加以灵活运用,就会发现它的优势,并会逐 ...

  7. snowflake原理解析

    Snowflake 世界上没有两片完全相同的雪花. ​ - twitter Snowflake原理 这种方案把64-bit分别划分成多段,分开来标示机器.时间等,比如在snowflake中的64-bi ...

  8. https如何进行加密传输

    客户端是没有证书的,也就没有公钥和私钥. SSL握手阶段,服务器把证书传输给客户端,同时也就传输了公钥(公钥是证书的一部分). 由客户端来对这个证书进行有效性认可,再由这个客户端来生成对称密钥. 对称 ...

  9. [寒假学习]ps知识

    小学就开始学了,还是要感谢当时年轻不懂事到处研究怎么画画哈哈哈哈,不过到现在有点忘,寒假在家禁足也无聊,寻思着重拾画笔来着,复习一下,冲! 为了防止看完就忘用博客记录一下小笔记   1. 一些快捷键的 ...

  10. javaweb之Servlet,http协议以及请求转发和重定向

    本文是作者原创,版权归作者所有.若要转载,请注明出处. 一直用的框架开发,快连Servlet都忘了,此文旨在帮自己和大家回忆一下Servlet主要知识点.话不多说开始吧 用idea构建Servlet项 ...