Zabite proces jediným príkazom

Mnohokrát musíme proces zabiť prostredníctvom terminálu. Ak poznáme celý názov procesu (napríklad: Kate) nemáme žiadne problémy, jednoduché:

killall kate

Vyrieši to problém za nás ... ale čo sa stane, ak nepoznáme presný názov procesu?

Pri tých príležitostiach musíme vymenovať všetky procesy, ktoré obsahujú ps aux ako je znázornené na nasledujúcej snímke obrazovky:


Potom hľadajte PID procesu, ktorý v tomto prípade hľadáme PID Kate:


Potom urobte:

kill 3808

A voila, tam proces zabíjame.

No ... v jednom riadku môžeme vyhľadať proces (bez toho, aby sme museli poznať celé meno), zistiť jeho PID a tiež ho zabiť:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill

Ako môžeš vidieť:

  1. Uvádzame zoznam procesov (ps aux)
  2. Celé alebo presné meno Kate (hej, môže to byť redaktor kate alebo niečo podobné), takže filtrujeme iba podľa kat (grep kat)
  3. Ale dostaneme dva procesy súvisiace s kat, ak použijeme iba tento filter, jeden, ktorý je procesom Kate a druhý, ktorý je procesom, ktorý aktivujeme na filtrovanie, nechám vám snímku obrazovky, aby ste mohli dokončiť porozumenie: (Všimnite si, že existujú 2 riadky, to znamená 2 procesy)

  4. Aby sme sa vyhli tomu, čo bolo vysvetlené predtým, robíme ďalší filter (grep -v grep). Čo urobíme opačne ... ak filtrujeme pomocou grep, zobrazí sa iba zhoda s filtrom, dobre s grep -v Dávame vám pokyn, aby ste NEZobrazovali zhody, ale aby ste ukázali, čo sa nezhoduje. Ukazujem vám screenshot toho, aký by bol zatiaľ výsledok: (Všimnite si, že teraz sa objavuje iba Kateov proces)

  5. No, proces, ktorý chceme zabiť, už máme izolovaný, teraz musíme iba extrahovať jeho PID, čo je druhé číslo, teda 4062. A PID je v 2. stĺpci (Prvý stĺpec obsahuje používateľa s UID 1), takže pomocou awk môžeme povedať, že z tohto riadku zobrazuje iba to, čo nájde v 2. stĺpci (awk '{print $ 2}'). Čo by nám ukázalo iba číslo procesu, to znamená, že v termináli sa zobrazí iba PID.
  6. Ale nechceme ukazovať PID, to, čo chceme, je zabiť proces s tým PID ... tak to urobíme, to, čo máme, odovzdáme príkazu zabiť a pripravený (xargs zabiť)
  7. Čo to znamená xargs? ... jednoduché, v tomto prípade nemôžeme odovzdať PID na zabitie iba pomocou rúrok ( | ), to jednoducho nestačí, takže xargs (ktorý umožňuje odovzdať hodnoty alebo údaje a potom ich vykonať alebo zabiť) je to, čo nám umožní dokončiť prácu.

A tu to končí 😀

Áno ... Viem, že sa to zdá byť trochu zložité, a práve preto som sa to snažil vysvetliť najlepšie, ako som vedel.

Viem, že možno málokto bude potrebovať tento príkaz, ale cieľ tohto článku je rovnaký ako cieľ článku DesdeLinux, naučte ich každý deň niečo nové, vždy sa ich snažte zbaviť strachu z Linuxu... a osobne by som bol rád, keby sa aj oni naučili bez strachu ovládať terminál 😉

Každopádne ... Dúfam, že vás to zaujalo, stále sa učím používať Wow čo je naozaj super hehe.

pozdravy


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   ezitoc dijo

    Je pravda, awk pre mňa bol veľmi užitočný a myslím si, že každému, kto potrebuje manipulovať so štruktúrovanými textovými súbormi, sa dôrazne odporúča vedieť, ako ho používať.

    Mám len otázku (nemá nič spoločné so vstupom: D), ako (a s akým programom) ste vytvorili ten efekt rozostrenia, ktorý umožňuje zvýrazniť časť snímky obrazovky?

    Zdravím.

    1.    ezitoc dijo

      Testovanie ak je to z formátu funguje to a ak nie niekto mi povedzte, ako na to

      Děkuju mnohokrát.

    2.    KZKG ^ Gaara dijo

      No áno ... Teraz som znovuobjavil Linux, keď viem, ako pracovať s awk HAHAHAHA.
      O efekte a tak, nič ... je to len Gimp 😀

      Vyberiem časť, ktorú chcem zvýrazniť, rozstrihnem ju pomocou [Ctrl] + [X] a vložím ju ako novú vrstvu, potom vyberiem spodnú vrstvu (čo je tá, ktorú chcem nepriehľadnú) a prejdem na Filtre- »Gaussian (alebo cokolvek pises hehe) a voila.
      Teraz, aby som získal tmavý efekt, jednoducho vytvorím novú vrstvu (biele pozadie) a umiestnim ju medzi tieto dve, ktoré som už mal, dám jej čiernu farbu a v pruhu priehľadnosti (pravý horný roh) ju presuniem na miesto Dosahujem požadovaný efekt.

      Zdravím a ďakujem za komentár 🙂

      1.    Roberto Evolving Santana dijo

        Veľký !!

  2.   Manuál zdroja dijo

    Ak je proces z programu, ktorý je viditeľný, nie je nič pohodlnejšie ako písanie XKILL na konzole kliknite na program, ktorý chcete zabiť, a voila.

    1.    KZKG ^ Gaara dijo

      kliknite na program zabiť
      hehe jo ... to je za predpokladu, že máš GUI hehe.

      1.    Manuál zdroja dijo

        Máte pravdu, preto som povedal „ak je proces z programu, ktorý je viditeľný“.

        1.    Windousianske dijo

          Ľahšie je kliknúť na tlačidlo s „X“. GNOME Shell má toto tlačidlo stále v poriadku? :-D.

          1.    Manuál zdroja dijo

            Ak je program zmrazený (čo je hlavný dôvod, prečo by ste museli zabiť jeho proces), je logické, že toto tlačidlo nebude reagovať bez ohľadu na to, ako veľmi ho stlačíte.

            Myslím si, že GNOME Shell to čoskoro odstráni, takže uvidíte hmatateľný zázrak zatvárania okien tak, že ich potiahnete na spodnú časť obrazovky ako vo Windows 8. Netreba pripomínať, že na širokouhlých monitoroch je to fantastické cvičenie.

          2.    Windousianske dijo

            Už chápem. V takom prípade mám radšej Control + Alt + Esc (v KDE).

            Nemôžem sa dočkať, až uvidím nové ukážky GNOME Shell, sú skutočnou lahôdkou.

  3.   riadny dijo

    Toto robí to isté, ale píše sa menej.
    V tomto prípade som si vzal ako príklad listovú podložku, preto sa list objaví v grep
    ps -e | grep leaf | awk '{print $1}' | xargs kill

    pozdravy

  4.   sys dijo

    Uf! Syn môj, skús spustiť „pgrep kat“, čo je pre niečo „pgrep“.

    A vykonať „man pgrep“. A „man pidof“, ktorý vám niekedy môže „pidof“ pomôcť.

    A vykonať «ps aux | grep [k] at ", ktoré v dôsledku toho nevráti" proces, ktorý aktivujeme pre filtrovanie ", ktorý komentujete, čím vám ušetrí prácu.

    Zdravím!

    1.    sys dijo

      Och, a „pkill“, ktorý robí to, čo hľadáte. Napríklad: „pkill kat“.

    2.    KZKG ^ Gaara dijo

      Och, zaujímavé ... nepoznal som pgrep 🙂
      Ďakujem za tip 😀

      1.    sys dijo

        Ďakujem vám a vašim článkom.

        Mimochodom, v https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ komentovať techniku ​​používania príkazov ako «ps aux | grep [n] program_name ", vysvetľujú to tam lepšie ako ja.

        Zdravím!

        1.    KZKG ^ Gaara dijo

          Ďakujem za odkaz 😀
          To je skvelé na tom, že existuje. DesdeLinux...je jedno či si užívateľ, redaktor alebo admin, všetci sa stále učíme nové veci 🙂

          Zdravím a ešte raz ďakujem priateľ.

  5.   kosť dijo

    Ďakujem všetkým veľmi pekne za váš čas a odhodlanie, preto sa oplatí navštíviť a prečítať si túto stránku niekoľkokrát denne.

    Ešte raz ďakujem.

  6.   Pán Linux. dijo

    KZKG ^ Gaara je takmer vždy rovnaký, pokiaľ ide o tento druh rád, existuje iná osoba, ktorá robí to isté jednoduchým príkazom. Ale blahoželám mu, vždy prispieva.

    1.    KZKG ^ Gaara dijo

      hehe jo ... viem, ako urobiť X osa a prídem sem a zdieľam metódu, ale potom zdieľajú jednoduchší spôsob, ako dosiahnuť to isté, hahaha, ale s tým všetci vyhrávame, však? 😀

      1.    truko22 dijo

        Správne 0 /

      2.    Manuál zdroja dijo

        Hahaha, vždy ideš tou najkomplikovanejšou cestou. 😀

        1.    KZKG ^ Gaara dijo

          HAHAHA áno, vždy som si myslel: «Ak viem, ako na to tvrdo, tak sa bez problémov naučím robiť to jednoducho.»A ... naopak nefunguje to isté hahaha.

  7.   Oskar dijo

    Problém by bol, keby sme mali dva procesy s podobným názvom.
    Napríklad proces kate a ďalší proces ... mmm ... povedzme kater xD
    S takýmto príkazom by sme oboch zabili, však?

    1.    KZKG ^ Gaara dijo

      No jo, to by sa stalo 🙂

  8.   truko22 dijo

    TT nebohá Kate. V KDE používam program xkill, ktorý sa rýchlo spúšťa pomocou „ctrl + alt + esc“ alebo tiež pomocou „ctrl + Esc“ otvoreného „System Activities“ a robí to graficky. Teraz sa tento postup cez terminál musí naučiť, aj keď mám domáci server so stabilným debianom a ten vôbec nevisí.

  9.   Julian dijo

    Skvelé! práve teraz, keď sa zúčastňujem kurzu operačných systémov a potrebujem vykonávať úlohy s terminálom, bol váš tutoriál veľkou pomocou! Vďaka

  10.   pablo dijo

    Veľmi dobre vysvetlené, skvelý blog, s ktorým som sa práve stretol, ho smerujem k obľúbeným. Ďakujem.

  11.   Brzo dijo

    No, je to dobré, aj keď sú chvíle, keď ich nemožno zabiť ...

  12.   dcoy dijo

    pkill -9

    1.    dcoy dijo

      pkill -9 "názov procesu"
      v predchádzajúcom komentári som dal «» ale nevyšlo to xD

  13.   itobest dijo

    dobrú noc, mám čas prečítať si tvoj feed a dnes som sa rozhodol vyskúšať tento príkaz ps ax | grep chróm | grep -v grep | awk '{print $ 1}' | xargs kill a zobrazí sa nasledujúca chyba kill: cannot find process "?" s malými skúsenosťami, ktoré mám v bashe, som sa rozhodol urobiť nejaké úpravy a nakoniec mi ostalo ps -A | grep c | grep -v grep | awk '{print $ 1}' | xargs kill vzhľadom na to, že ps -A sa používa na zobrazenie všetkých procesov v súhrnnej podobe a druhou anomáliou bolo, že to vyhodilo TTY «?» a fungovalo mi to veľmi pekne ďakujem veľmi sa mi páči váš blog, pozdravy

  14.   michal dijo

    Vďaka compa, nevieš si predstaviť množstvo problémov, ktoré si ma týmto príkazom práve vyriešil.

    Zdravím !!

  15.   email dijo

    VĎAKA !!!!

  16.   Arturo dijo

    Vynikajúci príspevok. Presne to, čo som hľadal a nevedel, ako na to, a vysvetlenie bolo veľmi dobré.

    Zdravím.