<link rel = "stylesheet" id = "gtranslate-style-css" href = "https://websetnet.b-cdn.net/wp-content/plugins/gtranslate/gtranslate-style24.css" type = "text / css "media =" all ">

Jak používat a maximálně využít příkaz fixační jednotky v systému Linux

Jak používat a maximálně využít příkaz fixační jednotky v systému Linux

Předpokládejme, že máte úkol identifikovat procesy, které používají konkrétní soubor, a poté je zabíjet jeden po druhém - to vše musí být provedeno z příkazového řádku. Co bys dělal? Pokud jste nováček z příkazové řádky, jsem si jist, že byste byli bezradní a požádali o pomoc.

Profesionálové z příkazového řádku však pravděpodobně budou mít představu, že v systému Linux existuje obslužný program příkazového řádku, který vám umožní identifikovat procesy založené na souborech (nebo adresářích nebo soketech), ke kterým přistupují. Nástroj nejenže umožňuje tyto procesy zabíjet, takže nemusíte používat zabít or zabít všechny příkazy samostatně. Nástroj příkazového řádku, o kterém mluvíme, je fixační jednotka.

Pokud si ještě nejste vědomi tohoto nástroje a chcete porozumět tomu, jak jej používat, nehledejte dále, jako v tomto článku, budeme diskutovat fixační jednotka podrobněji, prostřednictvím některých snadno pochopitelných příkladů.

Ale předtím, než budeme pokračovat, nezapomeňte, že všechny příklady, příkazy a instrukce uvedené v tomto tutoriálu byly testovány na Ubuntu 16.04 LTS a fixační jednotka verze příkazu, kterou jsme použili, je 22.21.

Příkaz zažehlovače Linuxu

Společnost fixační jednotka Příkaz - jak jsem již zmínil výše - se primárně používá k identifikaci procesů pomocí souborů, adresářů nebo soketů. Nástroj v podstatě zobrazuje PID procesů, které používají soubor, jehož jméno je předáno jako argument příkazu.

Tady je fixační jednotka příkaz v akci ve své nejzákladnější formě:

fuser příkaz

Jak je jasné z výše uvedeného obrázku, zkusili jsme ho použít fixační jednotka aby zjistili, které procesy používají / home / himanshu adresář a příkaz - ve svém výstupu - vytvořil seznam ID procesů. Zatím je to dobré, ale je zde několik problémů.

Za prvé, co je to „c“ připojené ke každému PID? Rychlý pohled na příkaz man page že ve výchozím režimu zobrazení fixační jednotka příkaz zobrazí nejen PID procesů, které přistupují k souboru nebo adresáři, ale zobrazuje také typ přístupu.

Každý typ přístupu je označen písmenem:

  • c - aktuální adresář.
  • e - spustitelný spustitelný soubor.
  • f - otevřít soubor. f je ve výchozím režimu zobrazení vynecháno.
  • F - otevřít soubor pro zápis. Ve výchozím režimu zobrazení je F vynechána.
  • r - kořenový adresář.
  • m - mmap'ed soubor nebo sdílená knihovna.

Nyní, když se vracíme k příkladu, o kterém jsme diskutovali, písmeno 'c' ve výstupu naznačuje, že všechny procesy, jejichž PID jsou uvedeny ve výstupu, přistupují k / home / himanshu jako svůj aktuální adresář.

Nezapomeňte, že proces může mít více typů přístupů pro soubor nebo adresář. Například následující výstup ukazuje, že kořenový adresář (/) je přístupný mnoha procesy jako jejich aktuální i kořenový adresář.

Výsledek fixační jednotky / příkazu

Až doposud fixační jednotka výstup, který vidíme, obsahuje pouze ID procesů a nic víc než to. Nebylo by lepší, kdyby se zobrazovaly také názvy procesů? Pro to musíte použít -v možnost příkazového řádku. Následuje příklad:

Fuser -v možnost

Přejděte dále a přidejte uživatelské jméno vlastníka procesu na každý PID -u možnost příkazového řádku. Zde je příklad:

Volba příkazu fuser -vu

Poznámka: Pokud je daný soubor nebo adresář umístěn na připojeném souborovém systému nebo blokovém zařízení, použijte příkaz -m možnost příkazového řádku. "Jsou uvedeny všechny procesy přistupující k souborům v tomto systému souborů," říká man page. „Pokud je zadán soubor adresáře, automaticky se změní na NAME /. použít jakýkoli souborový systém, který by mohl být připojen do tohoto adresáře. “

Jak zabíjet procesy pomocí fixační jednotky

Nyní, když jsme diskutovali o fixační jednotka základy, pojďme k úkolu, který jsem zmínil na začátku - jak zabíjet procesy pomocí fixační jednotka? Vezměme si pro tento případ jednodušší příklad. Co udělám, je, že spustím spustitelný soubor a když bude spuštěn, pokusím se proces zabít pomocí fixační jednotka.

Tady je spustitelný soubor, který byl spuštěn:

Zabijte proces se zapékací jednotkou

A tady je fixační jednotka příkaz, který by v ideálním případě měl zabít proces zahájený testovací fixační jednotka spustitelný.

fuser -v -k testovací fixační jednotka

Ach, než půjdu dopředu a provedu tento příkaz, dovolte mi, abych vám řekl, že -k příkaz příkazového řádku fixační jednotka zabít proces (nebo procesy) pomocí souboru nebo adresáře.

Co se stalo, když byl výše uvedený příkaz proveden:

Výsledek zabíjení procesu se zapékáním

Jak je jasné z výše uvedeného obrázku, pomocí příkazu -k možnost příkazového řádku pomocí fixační jednotka zabil testovací fixační jednotka proces. Ujistěte se, že fixační jednotka příkaz požádá o potvrzení uživatele před zabitím procesu, použijte -i volba. Viz příklad níže:

fixní příklad fixační jednotky

Následuje několik důležitých detailů týkajících se fixační jednotky, které byste měli vědět při použití možnosti -k:

  • Pomocí příkazu -k odesílá příkaz fixační jednotky standardní signál SIGKILL. Toto chování však můžete změnit pomocí možnosti -SIGNAL.
  • Proces fixační jednotky se nikdy nezabije, ale může zabít další procesy zapékání.

fixační jednotka - další podrobnosti

Kromě výše uvedených informací existuje několik dalších podrobností, které je třeba mít na paměti. Ke všem těmto informacím lze získat přístup pomocí příkazu man page. Například následující jsou informace, které fixační jednotka seznamy manuálových stránek v části „Omezení“:

       Procesy přistupující k stejnému souboru nebo souborovému systému několikrát stejným způsobem se zobrazují pouze jednou. Pokud je stejný objekt zadán několikrát na příkazovém řádku, některé z těchto položek mohou být ignorovány. zapékací jednotka může pouze shromažďovat částečné informace, pokud není spuštěna s oprávněními. V důsledku toho soubory, které byly otevřeny procesy, které patří jiným uživatelům, nemusí být uvedeny a spustitelné soubory mohou být klasifikovány pouze jako mapované. Instalace korektoru SUID fixační jednotky zabrání problémům spojeným s částečnou informací, ale z bezpečnostních důvodů a důvodů ochrany soukromí může být nežádoucí. mezipaměti názvů udp a tcp a zásuvky domény UNIX nelze prohledávat s jádry staršími než 1.3.78. Přístupy jádra jsou zobrazeny pouze s volbou -v. Možnost -k funguje pouze na procesech. Pokud uživatel je jádro, zapékací jednotka vytiskne radu, ale neprovede žádnou akci.

závěr

Jak jste už pochopili, fixační jednotka je velmi užitečný nástroj příkazového řádku v systému Linux. Dobrá věc je, že tento nástroj není ani těžko pochopitelný, ani použitelný, takže s ním mohou snadno začít i nováčci. Jedním aspektem, kterého jsme se zde nedotkli, je to, že příkaz vám umožňuje identifikovat a dokonce zabíjet procesy běžící na konkrétních portech, což z něj činí těžko ignorovatelný nástroj pro síťové administrátory.

Zdroj

Zanechat komentář