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命令;

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※想知道網站建置網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計後台網頁設計

※不管是台北網頁設計公司台中網頁設計公司,全省皆有專員為您服務

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※帶您來看台北網站建置台北網頁設計,各種案例分享

※別再煩惱如何寫文案,掌握八大原則!