Drep en prosess med en enkelt kommando

Mange ganger må vi drepe en prosess gjennom en terminal. Hvis vi vet hele prosessnavnet (for eksempel: kate) vi har ingen problemer, et enkelt:

killall kate

Det løser problemet for oss ... men hva skjer hvis vi ikke vet nøyaktig navnet på prosessen?

Ved de anledninger må vi liste opp alle prosesser med ps til som vist i følgende skjermbilde:


Se deretter etter PID for prosessen, som vi i dette tilfellet ser etter PID for kate:


Gjør da en:

kill 3808

Og voila, der dreper vi prosessen.

Vel ... i en enkelt linje kan vi søke etter prosessen (uten å måtte vite hele navnet), finne ut PID, og ​​også drepe den:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill

Som du kan se:

  1. Vi lister opp prosessene (ps til)
  2. Vi vet ikke det fulle eller nøyaktige navnet på kate (hei, det kan være kate-editor eller noe sånt) så vi filtrerer bare etter kat (grep kat)
  3. Men vi får to prosesser relatert til kat hvis vi bare bruker dette filteret, en som er kate-prosessen, og en annen som er prosessen som vi aktiverer for filtrering, jeg gir deg et skjermbilde slik at du kan fullføre forståelsen: (Legg merke til at det er to linjer, det vil si to prosesser)

  4. For å unngå det som ble forklart før, lager vi et nytt filter (grep -v grep). Hva vi vil gjøre det motsatte ... hvis vi filtrerer ved hjelp av grep, vil det bare vise treffene med filteret, vel med grep -v Vi instruerer deg om IKKE å vise kampene, men å vise det som ikke stemmer overens. Jeg viser deg skjermbildet av hvordan resultatet så langt vil være: (Legg merke til at nå bare kates prosess vises)

  5. Vel, vi har allerede isolert prosessen vi vil drepe, nå må vi bare trekke ut PID, som er det andre tallet, det vil si 4062. Og PID er i 2. kolonne (Første kolonne inneholder bruker med UID 1), så ved å bruke awk kan vi si at det bare viser fra den linjen hva den finner i 2. kolonne (awk '{print $ 2}'). Som bare viser oss prosessnummeret, det vil si at bare PID vises i terminalen.
  6. Men vi vil ikke vise PID, det vi ønsker er å drepe prosessen med den PID ... så vi vil gjøre det, vi overfører det vi har så langt til kommandoen drepe og klar (xargs dreper)
  7. Hva betyr det xargs? ... enkelt, i dette tilfellet kan vi ikke passere PID for å drepe bare med rør ( | ), dette er rett og slett ikke nok, så xargs (som gjør det mulig å overføre verdier eller data og deretter utføre eller drepe dem) er det som vil tillate oss å fullføre jobben.

Og her ender det 😀

Ja ... Jeg vet at dette virker litt komplekst, og det er nettopp derfor jeg har prøvd å forklare det best jeg kunne.

Jeg vet at muligens få vil trenge denne kommandoen, men målet med denne artikkelen er det samme som DesdeLinux, lær dem noe nytt hver dag, prøver alltid å få dem til å miste frykten for Linux... og personlig ville jeg også elske at de lærte å bruke terminalen uten frykt 😉

Uansett ... Jeg håper du har funnet det interessant, jeg fortsetter å lære å bruke awk som er virkelig flott hehe.

Hilsen


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   ezitoc sa

    Det er sant, awk har vært veldig nyttig for meg, og jeg tror at alle som trenger å manipulere strukturerte tekstfiler, anbefales på det sterkeste å vite hvordan de skal brukes.

    Jeg har bare et spørsmål (som ikke har noe å gjøre med inngangen: D), hvordan (og med hvilket program) gjorde du den uskarphetseffekten som lar deg markere en del av skjermbildet?

    Hilsener.

    1.    ezitoc sa

      Testing hvis dette fra formatet det fungerer og hvis ikke noen forteller meg hvordan jeg skal gjøre det

      Tusen takk.

    2.    KZKG ^ Gaara sa

      Vel ja ... Jeg har gjenoppdaget Linux nå som jeg vet hvordan jeg skal jobbe med HAHAHAHA.
      Om effekten og slikt, ingenting ... det er bare Gimp 😀

      Jeg velger den delen som jeg vil markere, klipper den med [Ctrl] + [X] og limer den inn som et nytt lag, så velger jeg det nederste laget (som er det jeg vil dekke) og går til Filtre- »Gaussisk (eller hva du skriver hehe) og voila.
      Nå, for å gi den den mørke effekten, lager jeg ganske enkelt et nytt lag (hvit bakgrunn) og plasserer det mellom disse to som jeg allerede hadde, jeg gir det svart farge og i gjennomsiktighetslinjen (øvre høyre hjørne) flytter jeg det dit jeg oppnår ønsket effekt .

      Hilsen og takk for kommentaren 🙂

      1.    Roberto Evolving Santana sa

        Stor!!

  2.   Håndbok for kilden sa

    Hvis prosessen er fra et program som er synlig, er det ikke noe mer behagelig enn å skrive xkill på konsollen, klikk på programmet for å drepe, og voila.

    1.    KZKG ^ Gaara sa

      Klikk på programmet for å drepe
      hehe ja ... det er forutsatt at du har en GUI hehe.

      1.    Håndbok for kilden sa

        Det er riktig, det er derfor jeg sa "hvis prosessen er fra et program som er synlig."

        1.    Windousian sa

          Det er lettere å klikke på knappen med "X". GNOME Shell har fortsatt den knappen, ikke sant? :-D.

          1.    Håndbok for kilden sa

            Hvis programmet er frossent (som er den viktigste grunnen til at du trenger å drepe prosessen), er det logisk at denne knappen ikke vil svare uansett hvor mye du trykker på den.

            Jeg tror GNOME Shell vil fjerne det snart, slik at du kan se det taktile vidunderet ved å lukke vinduer ved å dra dem til bunnen av skjermen som i Windows 8. Det er unødvendig å si at på widescreen-skjermer er det en fantastisk øvelse.

          2.    Windousian sa

            Jeg forstår nå. I så fall foretrekker jeg Control + Alt + Esc (i KDE).

            Jeg gleder meg til å se de nye forhåndsvisningene av GNOME Shell, de er en skikkelig godbit.

  3.   ordentlig sa

    Dette gjør det samme, men mindre er skrevet.
    I dette tilfellet tok jeg leafpad som et eksempel, det er derfor bladet vises i grep
    ps -e | grep leaf | awk '{print $1}' | xargs kill

    Hilsen

  4.   Sys sa

    Puh! Min sønn, prøv å kjøre "pgrep kat", som er "pgrep" for noe.

    Og å utføre "man pgrep". Og "man pidof", som noen ganger "pidof" kan hjelpe deg.

    Og å utføre «ps aux | grep [k] at ", som ikke vil returnere som et resultat" prosessen som vi aktiverer for filtreringen "som du kommenterer, og dermed sparer du arbeid.

    Hilsener!

    1.    Sys sa

      Oh, og "pkill", som gjør det du leter etter. For eksempel: "pkill kat".

    2.    KZKG ^ Gaara sa

      Åh, interessant ... Jeg kjente ikke pgrep 🙂
      Takk for tipset 😀

      1.    Sys sa

        Takk til deg og artiklene dine.

        Forresten, i https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ kommentere teknikken for å bruke kommandoer som «ps aux | grep [n] programnavn ", de forklarer det bedre enn meg der.

        Hilsener!

        1.    KZKG ^ Gaara sa

          Takk for lenken 😀
          Det er det fine med at det eksisterer. DesdeLinux…det spiller ingen rolle om du er bruker, redaktør eller admin, vi lærer alle alltid nye ting 🙂

          Hilsen og takk igjen venn.

  5.   kostnad sa

    Tusen takk alle for din tid og dedikasjon, det gjør det verdt å besøke og lese dette nettstedet flere ganger om dagen.

    Takk igjen.

  6.   Herr Linux. sa

    KZKG ^ Gaara er nesten alltid den samme, når det gjelder slike tips, er det en annen person som gjør det samme med en enkel kommando. Men jeg gratulerer ham, han bidrar alltid kontinuerlig.

    1.    KZKG ^ Gaara sa

      hehe jepp ... Jeg vet hvordan jeg skal gjøre X osa og jeg kommer hit og deler metoden, men så deler de en enklere måte å oppnå det samme på, hahaha, men med dette vinner vi alle, ikke sant? 😀

      1.    truko22 sa

        Det stemmer 0 /

      2.    Håndbok for kilden sa

        Hahahaha, du går alltid på den mest kompliserte måten. 😀

        1.    KZKG ^ Gaara sa

          HAHAHA ja, jeg har alltid tenkt: «Hvis jeg vet hvordan jeg gjør det på den vanskelige måten, så vil jeg vite hvordan jeg skal lære å gjøre det på den enkle måten uten problemer.»Og ... omvendt fungerer ikke det samme hahaha.

  7.   oscar sa

    Problemet ville være hvis vi har to prosesser med et lignende navn.
    For eksempel en prosess med kate, og en annen prosess med ... mmm ... la oss si kater xD
    Med en slik kommando ville vi drepe dem begge, ikke sant?

    1.    KZKG ^ Gaara sa

      Vel, det ville skje 🙂

  8.   truko22 sa

    TT stakkars Kate. Jeg bruker er xkill i KDE den lanseres raskt med "ctrl + alt + esc" eller også med "ctrl + Esc" åpen "Systemaktiviteter" og gjør det grafisk. Nå må denne prosedyren gjennom terminalen læres, selv om jeg har en hjemmeserver med stabil debian og som ikke henger i det hele tatt.

  9.   Yulian sa

    Flott! akkurat nå som jeg går på operativsystemkurset og jeg må utføre oppgaver med terminalen, var opplæringen din til stor hjelp! Takk

  10.   pablo sa

    Veldig godt forklart, flott bloggen jeg nettopp har møtt, jeg peker den på favoritter. Takk skal du ha.

  11.   Anon sa

    Vel, det er bra, selv om det noen ganger ikke kan drepes ...

  12.   dcoy sa

    pkill -9

    1.    dcoy sa

      pkill -9 "prosessnavn"
      i forrige kommentar la jeg «» men det kom ikke ut xD

  13.   det best sa

    god natt, jeg har tid til å lese feeden din, og i dag bestemte jeg meg for å prøve denne kommandoen ps ax | grep krom | grep -v grep | awk '{print $ 1}' | xargs kill og jeg får følgende kill error: Kan ikke finne prosess "?" med den lille erfaringen jeg har i bash bestemte jeg meg for å gjøre noen modifikasjoner og til slutt sitter jeg igjen med ps -A | grep c | grep -v grep | awk '{print $ 1}' | xargs kill gitt at ps -A brukes til å vise alle prosesser i sammendragsform, og den andre anomalien var at den kastet TTY «?» og det fungerte for meg tusen takk. Jeg liker bloggen din, hilsener

  14.   Michael sa

    Takk compa, du kan ikke forestille deg hvor mange problemer du nettopp løste for meg med denne kommandoen.

    Hilsener !!

  15.   e-post sa

    TAKK !!!!

  16.   Arthur sa

    Utmerket innlegg. Akkurat det jeg lette etter og ikke visste hvordan jeg skulle gjøre det, og forklaringen var veldig bra.

    Hilsener.