Omoară un proces cu o singură comandă

De multe ori trebuie să ucidem un proces printr-un terminal. Dacă știm numele complet al procesului (de exemplu: Kate) nu avem probleme, un simplu:

killall kate

Rezolvă problema pentru noi ... dar dacă nu știm exact numele procesului?

Cu aceste ocazii, trebuie să enumerăm toate procesele cu ps la așa cum se arată în următoarea captură de ecran:


Apoi căutați PID-ul procesului, pe care în acest caz îl căutăm PID-ul Kate:


Până atunci, faceți un:

kill 3808

Și voila, acolo ucidem procesul.

Ei bine ... într-o singură linie putem căuta procesul (fără a fi nevoie să îi cunoaștem numele complet), să aflăm PID-ul său și, de asemenea, să-l ucidem:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill

După cum puteți vedea:

  1. Enumerăm procesele (ps la)
  2. Nu știm numele complet sau exact al Kate (hei, ar putea fi kate-editor sau ceva de genul asta) deci filtrăm doar după kat (grep kat)
  3. Dar vom obține două procese legate de kat dacă folosim doar acest filtru, unul care este procesul kate și altul care este procesul pe care îl activăm pentru filtrare, vă las o captură de ecran, astfel încât să puteți termina înțelegerea: (Observați că există 2 linii, adică 2 procese)

  4. Pentru a evita ceea ce a fost explicat anterior, facem un alt filtru (grep -v grep). Ceea ce vom face invers ... dacă filtrăm folosind grep, acesta va afișa doar meciurile cu filtrul, bine cu grep -v Vă instruim să NU arătați meciurile, ci să arătați ceea ce nu se potrivește. Vă arăt captura de ecran a modului în care ar fi rezultatul până acum: (Observați că acum apare doar procesul lui Kate)

  5. Ei bine, avem deja procesul pe care vrem să-l ucidem izolat, acum trebuie doar să extragem PID-ul său, care este al doilea număr, adică 4062. Și PID se află în a doua coloană (Prima coloană conține utilizator cu UID 1), deci folosind awk putem spune că arată doar din acea linie ceea ce găsește în a doua coloană (awk '{print $ 2}'). Ceea ce ne-ar arăta doar numărul procesului, adică doar PID va apărea în terminal.
  6. Dar nu vrem să arătăm PID, ceea ce vrem este să ucidem procesul cu acel PID ... așa că vom face asta, vom transmite ceea ce avem până acum la comandă ucide și gata (xargs ucid)
  7. Ce înseamnă asta xargs? ... simplu, în acest caz nu putem trece PID pentru a ucide doar cu țevi ( | ), pur și simplu nu este suficient, așa că xargs (care permite să transmită valori sau date și apoi să le execute sau să le omoare) este ceea ce ne va permite să terminăm treaba.

Și aici se termină 😀

Da ... Știu că acest lucru pare un pic complex, tocmai de aceea am încercat să-l explic cât de bine am putut.

Știu că, posibil, puțini vor avea nevoie de această comandă, dar obiectivul acestui articol este același cu cel al DesdeLinux, învață-i ceva nou în fiecare zi, încercând mereu să-i fac să-și piardă frica de Linux... și, personal, mi-ar plăcea să învețe să folosească terminalul fără teamă 😉

Oricum ... Sper că ți s-a părut interesant, învăț în continuare să folosesc Wow ceea ce este cu adevărat grozav hehe.

În ceea ce priveşte


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   ezitoc el a spus

    Este adevărat, awk mi-a fost foarte util și cred că oricui are nevoie să manipuleze fișiere text structurate este foarte recomandat să știe cum să-l folosească.

    Am doar o întrebare (care nu are nimic de-a face cu intrarea: D), cum (și cu ce program) ați făcut acel efect de estompare care vă permite să evidențiați o porțiune a capturii de ecran?

    Salutări.

    1.    ezitoc el a spus

      Testarea dacă aceasta din format funcționează și dacă nu cineva îmi spune cum să o fac

      Mulţumesc mult.

    2.    KZKG ^ Gaara el a spus

      Ei bine, da ... Am redescoperit Linux acum că știu cum să lucrez cu awk HAHAHAHA.
      Despre efect și așa ceva, nimic ... este doar Gimp 😀

      Selectez porțiunea pe care vreau să o evidențiez, o tai cu [Ctrl] + [X] și o lipesc ca strat nou, apoi selectez stratul inferior (care este cel pe care vreau să-l opac) și merg la Filtre- »Gaussian (sau orice scrieți) hehe) și voila.
      Acum, pentru a-i oferi efectul întunecat, pur și simplu creez un strat nou (fundal alb) și îl plasez între aceste două pe care le aveam deja, îi dau culoarea neagră și în bara de transparență (colțul din dreapta sus) îl mut în locul în care ating efectul dorit .

      Salutări și mulțumiri pentru comentariu 🙂

      1.    Roberto Evolving Santana el a spus

        Mare!!

  2.   Manualul Sursei el a spus

    Dacă procesul este dintr-un program care este vizibil, nimic nu este mai confortabil decât tastarea xkill pe consolă, faceți clic pe programul pentru a ucide și voila.

    1.    KZKG ^ Gaara el a spus

      faceți clic pe program pentru a ucide
      hehe da ... asta presupunând că aveți un GUI hehe.

      1.    Manualul Sursei el a spus

        Așa este, de aceea am spus „dacă procesul este dintr-un program care este vizibil”.

        1.    Windousian el a spus

          Este mai ușor să faceți clic pe butonul cu „X”. GNOME Shell are încă butonul respectiv nu? :-D.

          1.    Manualul Sursei el a spus

            Dacă programul este înghețat (care este principalul motiv pentru care ar trebui să-i omori procesul), este logic ca acest buton să nu răspundă indiferent cât de mult l-ai apăsa.

            Cred că GNOME Shell îl va elimina în curând, astfel încât să puteți vedea minunea tactilă a închiderii ferestrelor trăgându-le în partea de jos a ecranului, ca în Windows 8. Inutil să spun, pe monitoarele cu ecran lat este un exercițiu fantastic.

          2.    Windousian el a spus

            Inteleg acum. În acest caz, prefer Control + Alt + Esc (în KDE).

            Abia aștept să văd noile previzualizări GNOME Shell, acestea sunt un adevărat deliciu.

  3.   adecvat el a spus

    Acest lucru face la fel, dar mai puțin este scris.
    În acest caz, am luat leafpad-ul ca exemplu, motiv pentru care leaf apare în grep
    ps -e | grep leaf | awk '{print $1}' | xargs kill

    În ceea ce priveşte

  4.   Sys el a spus

    Phew! Fiul meu, încearcă să rulezi „pgrep kat”, care este „pgrep” pentru ceva.

    Și să execute „man pgrep”. Și „om pidof”, care uneori „pidof” te poate ajuta.

    Și să execute «ps aux | grep [k] at ", care nu va returna" procesul pe care îl activăm pentru filtrare "pe care îl comentați, ceea ce vă salvează de lucru.

    Salutări!

    1.    Sys el a spus

      Oh, și „pkill”, care face ceea ce căutați. De exemplu: „pkill kat”.

    2.    KZKG ^ Gaara el a spus

      Oh, interesant ... nu știam pgrep 🙂
      Vă mulțumim pentru sfat 😀

      1.    Sys el a spus

        Mulțumesc ție și articolelor tale.

        Apropo, în https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ comentează tehnica utilizării comenzilor precum «ps aux | grep [n] program_name ", ei explică mai bine decât mine acolo.

        Salutări!

        1.    KZKG ^ Gaara el a spus

          Vă mulțumim pentru link-ul 😀
          Acesta este lucrul grozav despre existenta. DesdeLinux…nu contează dacă ești utilizator, editor sau administrator, cu toții învățăm mereu lucruri noi 🙂

          Salutări și mulțumiri din nou prietene.

  5.   cost el a spus

    Vă mulțumesc tuturor pentru timp și dăruire, merită să vizitați și să citiți acest site de mai multe ori pe zi.

    Multumesc din nou.

  6.   Domnule Linux. el a spus

    KZKG ^ Gaara este aproape întotdeauna același, când vine vorba de aceste tipuri de sfaturi, există o altă persoană care face același lucru cu o comandă simplă. Dar îl felicit, contribuie mereu continuu.

    1.    KZKG ^ Gaara el a spus

      hehe yep ... Știu cum să fac X osa și vin aici și împărtășesc metoda, dar apoi împărtășesc o modalitate mai simplă de a realiza același lucru hahaha, dar cu asta câștigăm cu toții, nu? 😀

      1.    truko22 el a spus

        Asa este 0 /

      2.    Manualul Sursei el a spus

        Hahaha, mergi întotdeauna pe cel mai complicat drum. 😀

        1.    KZKG ^ Gaara el a spus

          HAHAHA da, întotdeauna m-am gândit: «Dacă știu să o fac greu, atunci voi ști cum să o fac simplu, fără probleme.»Și ... invers nu funcționează la fel hahaha.

  7.   Oscar el a spus

    Problema ar fi dacă avem două procese cu un nume similar.
    De exemplu, un proces de Kate și un alt proces de ... mmm ... să zicem Kater xD
    Cu o astfel de comandă, i-am ucide pe amândoi, nu?

    1.    KZKG ^ Gaara el a spus

      Ei bine, da, asta s-ar întâmpla 🙂

  8.   truko22 el a spus

    Biata Kate, TT. Folosesc xkill în KDE, este lansat rapid cu "ctrl + alt + esc" sau, de asemenea, cu "ctrl + Esc" deschideți "Activități de sistem" și faceți-o grafic. Acum, această procedură prin terminal trebuie învățată, deși am un server de acasă cu debian stabil și care nu se blochează deloc.

  9.   Julian el a spus

    Grozav! chiar acum, când urmez cursul de sisteme de operare și trebuie să îndeplinesc sarcini cu terminalul, tutorialul dvs. a fost de mare ajutor! Mulțumiri

  10.   Pablo el a spus

    Foarte bine explicat, minunat blogul pe care tocmai l-am întâlnit, îl indic spre favorite. Mulțumesc.

  11.   Îndată el a spus

    Ei bine, este bine, deși există unele momente în care nu pot fi uciși ...

  12.   dcoy el a spus

    pkill -9

    1.    dcoy el a spus

      pkill -9 "numele procesului"
      in comentariul anterior am pus «» dar nu a iesit xD

  13.   cel mai bun el a spus

    noapte buna, am timp sa iti citesc feedul si astazi am decis sa incerc aceasta comanda ps ax | grep crom | grep -v grep | awk „{print $ 1}” | xargs kill și primesc următoarea eroare de kill: nu pot găsi procesul "?" cu mica experienta pe care o am in bash am decis sa fac cateva modificari si pana la urma am ramas cu ps -A | grep c | grep -v grep | awk „{print $ 1}” | xargs kill deoarece ps -A este folosit pentru a arăta toate procesele într-un mod rezumat și a doua anomalie a fost că mi-a aruncat TTY «?» și a funcționat pentru mine vă mulțumesc foarte mult Îmi place foarte mult blogul dvs., salutări

  14.   Michael el a spus

    Mulțumesc compa, nu vă puteți imagina cantitatea de probleme pe care tocmai le-ați rezolvat cu această comandă.

    Salutări!

  15.   e-mail el a spus

    MULȚUMIRI !!!!

  16.   Arturo el a spus

    Post excelent. Doar ceea ce căutam și nu știam cum să fac, iar explicația a fost foarte bună.

    Salutări.