Linux系统使用Fuser命令的方法
什么是Fuser命令?
fuser命令是一个非常聪明的unix实用程序,用于查找正在使用某个文件、目录或socket的进程。它还提供有关拥有该进程的用户和访问类型的信息。。fuser工具显示了使用指定文件或文件系统的每个进程的进程ID(PID)。
安装
如果你的精简版运行fuser提示如下信息:
-bash:fuser:commandnotfound
请执行如下命令安装:
[winbert@winbert-server~]$sudoyum-yinstallpsmisc
如何使用fuser命令?
man命令可用于查看任何命令的帮助手册,但是学习新知识(尤其是linux命令)的最佳方法是通过阅读真实的示例,并且不断地在终端中键入命令。在终端中运行以下命令,以获取有关fuser实用程序的使用选项的信息。
[winbert@winbert-server~]$fuser Noprocessspecificationgiven Usage:fuser[-fMuvw][-a|-s][-4|-6][-c|-m|-nSPACE][-k[-i][-SIGNAL]]NAME... fuser-l fuser-V Showwhichprocessesusethenamedfiles,sockets,orfilesystems. -a,--alldisplayunusedfilestoo -i,--interactiveaskbeforekilling(ignoredwithout-k) -k,--killkillprocessesaccessingthenamedfile -l,--list-signalslistavailablesignalnames -m,--mountshowallprocessesusingthenamedfilesystemsorblockdevice -M,--ismountpointfulfillrequestonlyifNAMEisamountpoint -n,--namespaceSPACEsearchinthisnamespace(file,udp,ortcp) -s,--silentsilentoperation -SIGNALsendthissignalinsteadofSIGKILL -u,--userdisplayuserIDs -v,--verboseverboseoutput -w,--writeonlykillonlyprocesseswithwriteaccess -V,--versiondisplayversioninformation -4,--ipv4searchIPv4socketsonly -6,--ipv6searchIPv6socketsonly -resetoptions udp/tcpnames:[local_port][,[rmt_host][,[rmt_port]]]
如何查看使用某个目录的进程
fuser序可以与-v选项一起使用,该选项以详细模式运行该工具。verbose选项用于在计算机屏幕上生成详细输出,因此用户可以实时查看实用程序正在执行的操作。
[winbert@winbert-server~]$fuser-v. USERPIDACCESSCOMMAND /home/winbert:winbert1435..c..bash
上面的输出显示,以详细模式运行时,fuser会提供有关USER,PID,ACCESS和COMMAND的信息。ACCESS下的c字符表示访问类型,表示“当前目录”。访问类型很多,例如e(正在运行的可执行文件),r(根目录),f(打开文件。在默认显示模式下省略f),F(用于写入的打开文件,在默认显示模式下省略F)和m(mmap文件或共享库)。
查看使用你tcp或udp套接字的进程?
有时您需要使用TCP和UDP套接字查找进程。为了查找这些进程,需要使用-n选项。-n选项用于选择相应的名称空间。
[root@huidukongjian-h4docker]#fuser-v-ntcp80 USERPIDACCESSCOMMAND 80/tcp:root27411F....docker-proxy
默认情况下,fuser将同时在IPv6和IPv4套接字中查找,但是可以使用-4和-6选项更改默认选项。-4选项代表IPv4,-6选项代表IPv6。请注意,fuser仅将PID输出到stdout,其他所有内容都发送到stderr。
fuser-v-ntcp80命令的结果显示,使用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-k123/tcp 123/tcp:12216 Killprocess12216?(y/N) UseThe-6OptionToLookForIPv6Sockets.
以下命令以详细模式使用fuser,并尝试查找在端口123上运行的IPv6套接字。
fuser-v-ntcp-6123
查找占用某个文件系统的进程
-m选项可与fuser命令一起使用,以查找访问文件文件系统上文件的进程。此选项需要文件名作为输入参数。-m选项非常有用,尤其是当用于发现正在访问文件系统的进程并标识要杀死的进程时。
以下命令显示所有访问“example.txt”所在的文件系统的进程。仔细查看-m选项如何与fuser一起使用。
[root@huidukongjian-h4docker]#fuser-v-mdata/v2/config.json USERPIDACCESSCOMMAND /root/docker-v2/data/v2/config.json: rootkernelmount/ root1.rce.systemd root2.rc..kthreadd root3.rc..rcu_gp root4.rc..rcu_par_gp root6.rc..kworker/0:0H-kbl root8.rc..mm_percpu_wq root9.rc..ksoftirqd/0 root10.rc..rcu_sched root11.rc..migration/0 root12.rc..watchdog/0 root13.rc..cpuhp/0 root16.rc..netns root17.rc..kauditd root18.rc..khungtaskd root19.rc..oom_reaper root20.rc..writeback root21.rc..kcompactd0 root22.rc..ksmd root23.rc..khugepaged root24.rc..crypto root25.rc..kintegrityd root26.rc..kblockd root27.rc..tpm_dev_wq root28.rc..md root29.rc..edac-poller root30.rc..watchdogd root42.rc..kswapd0 root93.rc..kthrotld root94.rc..acpi_thermal_pm root95.rc..kmpath_rdacd root96.rc..kaluad root97.rc..ipv6_addrconf root98.rc..kstrp root326.rc..scsi_eh_0 root327.rc..scsi_tmf_0 root329.rc..kworker/0:1H-kbl root361.rc..ata_sff root363.rc..scsi_eh_1 root365.rc..scsi_tmf_1 root366.rc..scsi_eh_2 root367.rc..scsi_tmf_2 root387.rc..xfsalloc root390.rc..xfs_mru_cache root391.rc..xfs-buf/vda1 root394.rc..xfs-data/vda1 root395.rc..xfs-conv/vda1 root396.rc..xfs-cil/vda1 root397.rc..xfs-reclaim/vda root398.rc..xfs-log/vda1 root399.rc..xfs-eofblocks/v root400.rc..xfsaild/vda1 root486.rce.systemd-journal rpc541.rce.rpcbind root543Frce.auditd root545.rce.sedispatch root558.rc..rpciod root559.rc..kworker/u3:0 root561.rc..xprtiod root582Frce.sssd polkitd585.rce.polkitd root589.rce.rngd dbus593frce.dbus-daemon chrony612.rce.chronyd root652Frce.sssd_be root668Frce.sssd_nss root671.rc..ttm_swap root672.rc..nfit root675frce.systemd-logind root683Frce.gssproxy root740frce.NetworkManager root743Frce.tuned root814frce.systemd-udevd root889frce.sshd root890Frce.rsyslogd root895frce.agetty root898frce.crond root899frce.agetty root21821.rc..kworker/u2:0-flu root25475frce.sshd root25480.rce.systemd root25485frce.(sd-pam root25491frce.sshd root25492frce.bash root25705Frce.containerd root25706Frce.dockerd root26375.rc..kworker/u2:1-eve root27251Fr.e.containerd-shim root27267F...mv2 root27273Fr.e.containerd-shim root27295....msh root27400.rce.docker-proxy root27411.rce.docker-proxy root27416Fr.e.containerd-shim root27432....msh root27478....msh root27479F...mnginx root27480....msleep (unknown)27481F...mnginx root27561....msleep root27705.rc..kworker/0:0-xfs- root27765.rc..kworker/0:1-xfs- root27836.rc..kworker/0:2-even root27860frce.sshd root27883frce.sshd sshd27884frce.sshd
fuser还可用于将特定指令发送到某个进程。当与-k选项一起使用时,fuser命令将KILL指令发送给进程。有很多指令可以发送给运行中的进程,-l选项有助于查找可以与fuser一起使用的指令列表。
[root@huidukongjian-h4docker]#fuser-l HUPINTQUITILLTRAPABRTBUSFPEKILLUSR1SEGVUSR2PIPEALRMTERMSTKFLT CHLDCONTSTOPTSTPTTINTTOUURGXCPUXFSZVTALRMPROFWINCHPOLLPWRSYS
总结
到此这篇关于Linux系统使用Fuser命令的方法的文章就介绍到这了,更多相关Linuxfuser命令内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!