GNU/Linux >> Znalost Linux >  >> Linux

fuser Linux příkaz s příklady

Úvod

fuser příkaz (Najít USER ) je nástroj pro správu procesů, který identifikuje procesy pomocí souboru, adresáře nebo soketu. Navíc fuser poskytuje informace o vlastníkovi procesu a typu přístupu a ukončuje příslušné procesy.

Tento článek vysvětlí, jak používat fuser Linuxový příkaz s příklady.

Předpoklady

  • Systém se systémem Linux.
  • Přístup k terminálu.
  • Oprávnění sudo.

Syntaxe fixační jednotky Linux

fuser příkaz má několik možných typů syntaxe:

  • Pouze možnosti . Proveďte akci, která není specifická pro cílový adresář, soubor nebo soket.
fuser [option]
  • Určete adresář, soubor nebo soket . Vyhledejte všechny procesy běžící v cílové cestě a uveďte jejich PID.
fuser [file_or_directory_or_socket]
  • Určete možnosti a adresář, soubor nebo soket . Upravte vyhledávání a proveďte konkrétní akci v procesu. Například jej ukončit.
fuser [options] [file_or_directory_or_socket]
  • Žádné možnosti . Zobrazuje „Nebyla zadána žádná specifikace procesu“ zprávu a obrazovku nápovědy.

Možnosti fixační jednotky Linux

fuser příkaz funguje i tehdy, když zadáte pouze soubor, adresář nebo soket. Přesto použití možností poskytuje podrobnější výsledky.

Níže uvedená tabulka ukazuje nejběžnější fuser možnosti:

Příkaz Popis
-v , --verbose Zobrazuje pole USER, PID, ACCESS a COMMAND namísto pouze výpisu PID.
-n , --namespace Změní jmenný prostor z výchozí hodnoty na novou.
-m , --mount Určuje soubor patřící k souboru a uvádí všechny procesy přistupující k souborům v tomto souborovém systému.
-k , --kill Zabije procesy.
-i , --interactive Před ukončením procesu požádá uživatele o potvrzení.
-[SIGNAL] Zabije procesy se zadaným signálem místo výchozího signálu (SIGKILL).
-l , --list-signals Uvádí všechny názvy signálů, které může používat fuser .
-a , --all Zobrazuje soubory zadané v příkazu, ke kterému přistupuje alespoň jeden proces.
-u , --user Přidá uživatelské jméno vlastníka procesu ke každému PID.
-4 , --ipv4 Vyhledává pouze sokety IPv4.
-6 , --ipv6 Vyhledávat pouze sokety IPv6.
-M , --ismountpoint Zabije procesy, pouze pokud NAME specifikuje přípojný bod.
-w Zabijte pouze procesy s přístupem pro zápis.
-s , --silent Představuje tichou operaci ignorující -u a -v možnosti.
- Resetuje všechny možnosti.

Příklady příkazů linuxové fixační jednotky

fuser je dokonalý linuxový nástroj pro správu procesů. Chcete-li nástroj využít na maximum, přečtěte si níže uvedené sekce, kde najdete běžné fuser příklady.

Vyhledání procesů v adresáři

Základní fuser role je identifikovat, které procesy používají soubory v konkrétním adresáři. Syntaxe je:

fuser [directory]

Chcete-li například vypsat procesy spuštěné v aktuálním adresáři, použijte tečku (. ) :

fuser .

Výstup uvádí PID všech procesů přistupujících k aktuálnímu adresáři.

Terminál zobrazí Domů složku jako aktuální. Proto použití této cesty ke složce vytiskne stejný výstup:

fuser /home/sara

Chcete-li vytisknout čitelnější výstup, použijte -v (verbose) volba před adresářem:

fuser -v .

Stejný příkaz funguje v jakémkoli jiném adresáři. Identifikujte například procesy v WhatIsThis adresář umístěný v Domů složka s:

sudo fuser -v /home/sara/WhatIsThis

Poznámka: Pomocí sudo vytiskne více procesů, včetně těch, které vlastní root.

fuser -v . výstup je podrobný a obsahuje následující sloupce:

  • UŽIVATEL - Vlastník procesu.
  • PID – ID procesu.
  • PŘÍSTUP – Typ přístupu.
  • PŘÍKAZ - Příkaz provádějící proces.

Ve výše uvedených příkladech je ve sloupci přístupu zobrazen symbol c , který představuje aktuální adresář. Další typy přístupu a symboly jsou:

  • e - Spustitelný soubor je spuštěn.
  • f - Otevřete soubor.
  • F - Soubor otevřený pro zápis.
  • r - Kořenový adresář.
  • m - mmapovaný soubor nebo sdílená knihovna.

Seznam procesů pomocí souboru

Najděte procesy přistupující k souboru spuštěním fuser s cestou k názvu souboru.

fuser -v [filename]

Podívejte se například na procesy využívající this_is_a_new_text soubor na Domů adresář s:

sudo fuser -v /home/sara/this_is_a_new_text

Výstup zobrazuje:

  • Root jako vlastník procesu.
  • PID procesu.
  • Typ přístupu f představující otevřený soubor.
  • Příkaz less přístup k souboru.

fuser příkaz také funguje na spustitelném souboru, jako je PYTHON3 v adresáři bin:

 sudo fuser -v /bin/python3

Výstup příkazu:

  • Root jako vlastník procesu.
  • PID procesu.
  • Symbol přístupu e , což znamená, že soubor je spustitelný soubor.
  • Příkaz networkd-dispat spuštění souboru.

Vyhledání procesů pomocí zásuvky

Chcete-li najít procesy využívající sokety TCP a UDP, použijte:

fuser -v -n [socket_type] [port]

Nebo:

fuser -v [port]/[socket_type]

-n flag vybere odpovídající typ soketu (TCP nebo UDP) jako jmenný prostor. Například identifikujte proces běžící na portu TCP 631 pomocí:

sudo fuser -v -n tcp 631

Kratší syntaxe je:

sudo fuser -v 631/tcp

V obou případech příkaz vytiskne PID procesu, F jako typ přístupu a cupsd příkaz.

Najděte proces přistupující k souborovému systému

Použijte -m flag with fuser k identifikaci všech procesů přistupujících k souborovému systému zacílením na soubor patřící tomuto systému.

Chcete-li například vypsat všechny soubory a procesy spuštěné v souborovém systému, ke kterému tento_je_nový_text soubor patří, zadejte:

sudo fuser -v -m this_is_a_new_text

Zabít procesy

Příkaz fixační jednotky s -k příznak ukončí procesy ve vybrané cestě. Například proces spouští this_is_a_new_text soubor na Domů adresář. Soubor se otevře příkazem less.

Použijte fuser -k Chcete-li zabít pouze proces přistupující k tomuto souboru, ne každý proces používající Domov adresář:

sudo fuser -v -k /home/sara/this_is_a_new_text

Terminál po žádném z těchto dvou příkazů nic nevytiskne. Dále cílení na soubor s fuser také nevytiskne žádné výsledky. To znamená, že proces je ukončen:

sudo fuser -v /home/sara/this_is_a_new_text

Chcete-li to potvrdit, zkontrolujte this_is_a_new_text soubor dříve otevřený s less :

Výstup zobrazuje zprávu zabito a nový prázdný řádek terminálu potvrzující, že proces je ukončen.

Interaktivně zabíjet procesy

Příznak -k zabije jakýkoli proces používající konkrétní soubor. Pokud je však jmenným prostorem adresář, fuser -k zabije všechny procesy přistupující k tomuto adresáři. Spuštění tohoto příkazu v Domů adresář bez určení souboru, ukončí proces s operačním systémem a vypne systém .

Abyste předešli chybám, spusťte fuser v interaktivním režimu s -ki volba. Interaktivně ukončujte procesy v Domů adresář s:

fuser -ki .

Příkaz požaduje potvrzení pokaždé před ukončením procesu. Proto stiskněte y ukončete proces a přejděte k dalšímu, nebo zvolte N přeskočíte na další proces.

Odeslat signál

Při provádění fuser s -k , SIGKILL signál je odeslán procesu. Chcete-li však přerušit normální fuser -k spuštění a ukončení procesů s jiným signálem, zahrňte -[SIGNAL] vlajka.

fuser -k -[SIGNAL] [file_or_directory_or_socket]

Chcete-li zobrazit seznam všech signálů známých fuser , spustit:

fuser -l

Výstup zobrazuje 31 signálů, které fuser může použít. Proto při provádění fuser -k -[SIGNAL] , specifikujte signál jménem nebo číslem (-1 až -31). Chcete-li například umožnit procesu provést řízené vypnutí, použijte -TERM nebo -5 jako -[SIGNAL] .

Chcete-li například zabít proces pomocí portu TCP 631 pomocí TERM signál, proveďte:

sudo fuser -ki -TERM -n tcp 631

Další možností je použít -5 jako -[SIGNAL] a 631/TCP jako název portu:

sudo fuser -ki -5 631/TCP

Výsledek je v obou případech stejný. Tedy pomocí TERM umožňuje měkké ukončení a -ki flag žádá o potvrzení, čímž se snižuje možnost chyb.

Chcete-li zkontrolovat funkce a číselné hodnoty ostatních standardních signálů Linuxu, spusťte:

man 7 signal

Závěr

Po přečtení tohoto návodu víte, jak najít proces pomocí souboru, adresáře nebo soketu nebo jak ukončit procesy pomocí fuser .

Dále se naučte další způsoby, jak zabít jakýkoli proces, a také jak vypsat procesy v Linuxu.


Linux
  1. Linux Tee Command s příklady

  2. Příkaz linuxové hlavy s příklady

  3. JQ Command v Linuxu s příklady

  1. wc Linux Command s příklady

  2. Linux řazení příkazů s příklady

  3. Příklady příkazů fuser v Linuxu

  1. Echo Command v Linuxu (s příklady)

  2. man Command v Linuxu s příklady

  3. Příkaz AWK v Linuxu s příklady