本文不再更新,可能存在内容过时的情况,实时更新请访问原地址: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. 非阻塞赋值(Non-blocking Assignment)是个伪需求

    https://mp.weixin.qq.com/s/mH84421WDGRb7cuU5FEFIQ Verilog的赋值很是复杂,包括: 1. Continuous assignment; 2. Pr ...

  2. java实现 蓝桥杯 算法训练 操作格子

    问题描述 有n个格子,从左到右放成一排,编号为1-n. 共有m次操作,有3种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值. 对于每个2.3操作输出你所求 ...

  3. java实现第39级台阶(三十九级台阶)

    标题: 第39级台阶 小明刚刚看完电影<第39级台阶>,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶.先 ...

  4. 曹工说JDK源码(1)--ConcurrentHashMap,扩容前大家同在一个哈希桶,为啥扩容后,你去新数组的高位,我只能去低位?

    如何计算,一对key/value应该放在哪个哈希桶 大家都知道,hashmap底层是数组+链表(不讨论红黑树的情况),其中,这个数组,我们一般叫做哈希桶,大家如果去看jdk的源码,会发现里面有一些变量 ...

  5. iOS-MapKit的使用笔记

    对于地图和定位,苹果公司提供给了两个框架: MapKit:用于地图展示 Core Location :用于地理定位 这次总结MapKit:       同样,在使用MapKit时首先要导入头文件: 与 ...

  6. 05-IntentFilter的匹配规则

    IntentFilter的匹配规则 原则上一个Intent不应该既是显示调用又是隐式调用,如果二者共存的话以显式调用为主 隐式调用需要Intent能够匹配目标组件的IntentFilter中所设置的过 ...

  7. https如何进行加密传输

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

  8. 95题--不同的二叉搜索树II(java、中等难度)

    题目描述:给定一个整数 n,生成所有由 1 ... n 为节点所组成的 二叉搜索树 . 示例如下: 分析:这一题需要对比LeetCode96题来分析:https://www.cnblogs.com/K ...

  9. Python内置Turtle绘图库方法简介+多案例

    urtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的 ...

  10. 数据处理一条龙!这15个Python库不可不知

    如果你是一名数据科学家或数据分析师,或者只是对这一行业感兴趣,那下文中这些广受欢迎且非常实用的Python库你一定得知道. 从数据收集.清理转化,到数据可视化.图像识别和网页相关,这15个Python ...