Dræb en proces med en enkelt kommando

Mange gange har vi brug for at dræbe en proces gennem en terminal. Hvis vi kender det fulde navn på processen (for eksempel: kate) vi har ingen problemer, en simpel:

killall kate

Det løser problemet for os... men hvad sker der, hvis vi ikke kender det nøjagtige navn på processen?

Ved de lejligheder skal vi liste alle processer med ps aux som vist på følgende skærmbillede:


For derefter at lede efter processens PID, som vi i dette tilfælde leder efter PID'en af kate:


Gør inden da et:

kill 3808

Og voila, der dræber vi processen.

Nå, så... på en enkelt linje kan vi søge efter processen (uden at skulle kende dens fulde navn), finde ud af dens PID og også dræbe den:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill

Som du kan se:

  1. Vi lister processerne (ps aux)
  2. Vi kender ikke det fulde eller nøjagtige navn på kate (hej, det kunne være kate-editor eller noget), så vi filtrerer kun efter kat (grep kat)
  3. Men vi får to processer relateret til kat, hvis vi kun bruger dette filter, en der er den i kate-processen, og en anden som er den proces, vi aktiverer til filtreringen, jeg efterlader dig et skærmbillede, så du kan afslutte forståelsen: (Bemærk, at der er 2 linjer, det vil sige 2 processer)

  4. For at undgå det, der blev forklaret før, laver vi et andet filter (grep -v grep). Hvilket vi vil gøre det modsatte ... hvis vi filtrerer ved hjælp af grep, vil det kun vise matchene med filteret, godt med grep -v vi fortæller den IKKE at vise kampene, men at vise hvad der ikke passer. Jeg viser dig skærmbilledet af, hvordan resultatet ville være indtil videre: (Bemærk, at nu vises kun Kates proces)

  5. Nå, vi har isoleret den proces, som vi ønsker at dræbe, nu skal vi kun udtrække dens PID, som er det 2. tal, dvs. 4062. Og PID er i anden kolonne (1. kolonne indeholder brugeren med UID 1000), så ved at bruge awk kan vi sige kun at vise fra den linje, hvad den finder i 2. kolonne (awk '{print $2}'). Hvilket kun ville vise os procesnummeret, det vil sige, at kun PID'et vises i terminalen.
  6. Men vi ønsker ikke at vise PID'en, det vi ønsker er at dræbe processen med den PID... så det gør vi, vi videregiver det, vi har indtil videre til kommandoen dræbe og klar (xargs dræber)
  7. Hvad betyder det xargs? ...simpelt, i dette tilfælde kan vi ikke videregive PID til kun at dræbe med rør( | ), dette er simpelthen ikke nok, så xargs(der giver mulighed for at videregive værdier eller data for senere at eksekvere eller dræbe dem) er det, der giver os mulighed for at afslutte jobbet.

Og her slutter det 😀

Ja... jeg ved godt, at det virker lidt komplekst, og det er netop derfor, jeg har forsøgt at forklare det efter bedste evne.

Jeg ved, at muligvis få vil få brug for denne kommando, men formålet med denne artikel er det samme som DesdeLinux, lær dem noget nyt hver dag, prøv altid at få dem til at miste deres frygt for Linux... og personligt ville jeg også elske, at de lærte at bruge terminalen uden frygt 😉

Anyway... Jeg håber, du fandt det interessant, jeg er stadig ved at lære at bruge akavet det er rigtig fedt hehe.

hilsen


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   ezitoc sagde han

    Det er sandt, awk har været meget nyttigt for mig, og jeg tror, ​​at alle, der har brug for at manipulere strukturerede tekstfiler, bør vide, hvordan man bruger det.

    Jeg har bare et spørgsmål (der ikke har noget at gøre med inputtet :D), hvordan (og med hvilket program) lavede du den slørede effekt, der giver dig mulighed for at fremhæve en del af skærmbilledet?

    Greetings.

    1.    ezitoc sagde han

      Testning hvis dette af formatet det virker og hvis ikke nogen fortælle mig hvordan man gør det

      Mange tak.

    2.    KZKG ^ Gaara sagde han

      Nå ja... Jeg har genfundet Linux nu, hvor jeg ved, hvordan man arbejder med awk HAHAHAHA.
      Om effekten og sådan noget... det er bare Gimp 😀

      Jeg vælger den del jeg vil fremhæve, klipper den med [Ctrl]+[X] og indsætter den som et nyt lag, så vælger jeg det nederste lag (som er det jeg vil have uigennemsigtigt) og går til Filters-»Gaussian (eller hvad det nu står hehe) og det er det.
      Nu, for at give den den mørke effekt, laver jeg blot et nyt lag (hvid baggrund) og placerer det mellem disse to, som jeg allerede havde, giver det en sort farve og i gennemsigtighedslinjen (øverste højre hjørne) flytter jeg det til, hvor jeg opnår den ønskede effekt.

      Hilsen og tak for kommentaren 🙂

      1.    Roberto Evolving Santana sagde han

        Stor!!

  2.   Kildens manual sagde han

    Hvis processen er fra et program, der er synligt, er intet mere bekvemt end at skrive xkill i konsollen, klik på programmet for at dræbe, og det er det.

    1.    KZKG ^ Gaara sagde han

      klik på programmet for at dræbe
      hehe yep... det er forudsat at du har en GUI hehe.

      1.    Kildens manual sagde han

        Det er rigtigt, det var derfor jeg sagde "hvis processen er fra et program, der er synligt".

        1.    Windousian sagde han

          Det er nemmere at klikke på knappen med "X". GNOME Shell har stadig den knap ikke? :-D.

          1.    Kildens manual sagde han

            Hvis programmet er frosset (hvilket er hovedårsagen til, at du bliver nødt til at dræbe dets proces), er det logisk, at den knap ikke reagerer, uanset hvor meget du trykker på den.

            Jeg tror, ​​GNOME Shell vil fjerne det snart, så du kan se, hvilket taktil vidunder det er at lukke vinduer ved at trække dem til bunden af ​​skærmen som i Windows 8. Det er overflødigt at sige, at på widescreen-skærme er det en fantastisk øvelse.

          2.    Windousian sagde han

            Jeg forstår nu. I så fald foretrækker jeg Control+Alt+Esc (i KDE).

            Jeg glæder mig til at se de nye GNOME Shell-forhåndsvisninger, de er en rigtig godbid.

  3.   passende sagde han

    Dette gør det samme, men mindre at skrive.
    I dette tilfælde tog jeg leafpad som et eksempel, det er derfor leaf vises i grepet
    ps -e | grep leaf | awk '{print $1}' | xargs kill

    hilsen

  4.   Sys sagde han

    Pyha! Min søn, prøv at køre "pgrep kat", som er "pgrep" for noget.

    Og kør "man pgrep". Og "man pidof", som ved nogle lejligheder kan bruges som "pidof".

    Og kør “ps aux | grep [k]at”, som ikke vil returnere som et resultat af “den proces, som vi aktiverede for filtreringen”, som du kommenterer, og dermed sparer du arbejde.

    Hilsner!

    1.    Sys sagde han

      Åh, og "pkill", som gør, hvad du leder efter. For eksempel: "pkill kat".

    2.    KZKG ^ Gaara sagde han

      Åh, interessant... jeg vidste ikke pgrep 🙂
      Tak for tipet 😀

      1.    Sys sagde han

        Tak til dig og dine artikler.

        Forresten, i https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ kommentere teknikken til at bruge kommandoer som "ps aux | grep [navn_på_programmet", forklarer de det bedre end mig der.

        Hilsner!

        1.    KZKG ^ Gaara sagde han

          Tak for linket 😀
          Det er det fantastiske ved, at det eksisterer. DesdeLinux…det er lige meget om du er bruger, redaktør eller admin, vi lærer alle altid nye ting 🙂

          Hilsen og tak igen ven.

  5.   omkostninger sagde han

    Mange tak til alle, for tiden og dedikationen, det gør det umagen værd at besøge og læse denne side flere gange om dagen.

    Tak igen.

  6.   Hr. Linux. sagde han

    Det samme sker næsten altid med KZKG^Gaara, når det kommer til denne slags tips, er der en anden person, der gør det samme med en simpel kommando. Men jeg lykønsker ham, han bidrager altid konstant.

    1.    KZKG ^ Gaara sagde han

      hehe yep... Jeg ved, hvordan man laver X bear, og jeg kommer her og deler metoden, men så deler de en enklere måde at opnå det samme på, hahaha, men med dette vinder vi alle, ikke? 😀

      1.    truko22 sagde han

        Det er rigtigt 0/

      2.    Kildens manual sagde han

        Hahahaha, du går altid den mere komplicerede vej. 😀

        1.    KZKG ^ Gaara sagde han

          HAHAHA ja, jeg har altid tænkt: «Hvis jeg ved, hvordan man gør det på den hårde måde, så ved jeg, hvordan man lærer, hvordan man gør det på den enkle måde uden problemer.»Og... vice versa virker ikke det samme hahaha.

  7.   Oscar sagde han

    Problemet ville være, hvis vi har to processer med et lignende navn.
    For eksempel en kate-proces og en anden proces med... mmm... lad os sige kater xD
    Med denne kommando ville vi dræbe dem begge, ikke?

    1.    KZKG ^ Gaara sagde han

      Nå ja, det ville ske 🙂

  8.   truko22 sagde han

    TT stakkels kate. Jeg bruger er xkill i KDE, det startes hurtigt med "ctrl+alt+esc" eller også med "ctrl + Esc" åbner "Systemaktiviteter" og gør det grafisk. Nu skal denne procedure gennem terminalen læres, selvom jeg har en hjemmeserver med stabil debian, og den hænger slet ikke.

  9.   bruser forhæng sagde han

    Strålende! Lige nu, hvor jeg tager operativsystemkurset, og jeg skal udføre opgaver med terminalen, var din tutorial meget nyttig! tak skal du have

  10.   Pablo sagde han

    Meget godt forklaret, bloggen er fantastisk, jeg har lige fundet den, jeg bogmærker den. Tak skal du have.

  11.   Anon sagde han

    Nå, det er godt, selvom der er tidspunkter, hvor du ikke kan dræbe dem….

  12.   dcoy sagde han

    pkill -9

    1.    dcoy sagde han

      pkill -9 "procesnavn"
      I den forrige kommentar satte jeg "" men det kom ikke ud xD

  13.   det bedste sagde han

    godaften, jeg har læst dit feed i et stykke tid, og i dag besluttede jeg at prøve denne kommando ps axe | grep chrome | grep -v grep | awk '{print $1}' | xargs kill og jeg løb ind i følgende fejl kill: kan ikke finde processen "?" Med den lille erfaring, jeg har i bash, besluttede jeg at lave nogle ændringer, og i sidste ende står jeg tilbage med ps -A | grep c | grep -v grep | awk '{print $1}' | xargs dræber siden ps -A bruges til at vise alle processerne på en opsummeret måde, og den anden anomali var, at den kastede TTY'en "?" og det virkede for mig mange tak jeg kan rigtig godt lide din blog, hilsener

  14.   Michael sagde han

    Tak dude, du kan ikke forestille dig antallet af problemer, du lige har løst for mig med denne kommando.

    Greetings!

  15.   emalug sagde han

    TAK SKAL DU HAVE !!!!

  16.   Arturo sagde han

    Fremragende indlæg. Lige hvad jeg ledte efter og ikke vidste, hvordan jeg skulle gøre det, og forklaringen er meget god.

    Greetings.