Gramoscripts (4)

Un one-liner in bash 🙂 L-am facut la un moment dat, fiindca imi era lene sa tot dau ps -Al ca sa vad ce numar are procesul pe care vreau sa-l killaresc 🙂 Ce face? pur si simplu ia ca argument numele procesului si il omoara. In cazul in care sunt mai multe procese cu acelasi nume il omoara pe cel mai vechi (cu PID-ul cel mai mic).

Pregatiri:

cd ~/bin
> kp
chmod 755 kp

apoi se deschide intr-un editor text fisierul kp si se scrie in el:

#!/bin/bash
kill -9 `ps -A | sed -n '/'$1'/ p' | awk '{print $1}'`

take care sa nu confundati backticks cu apostroafele 🙂 dupa aia orice proces poate fi ucis cu comanda:

kp numele procesului

That’s all, folks! 🙂

5 thoughts on “Gramoscripts (4)

  1. gramos

    killall nu face acelasi lucru si nu e de gasit pe distributiile mai vechi de linux; iar ideea era, oricum, alta: sa te intereseze sa intelegi cum i se paseaza un argument unui script, sa vezi ce e cu backticks, cu pipes s.a.

    sper sa nu mi-o iei in nume de rau, dar nu mi se pare, in genere, ca replicile tale au ceva constructiv in ele

  2. stefantalpalaru

    Ar avea, dac? ai citi pagina de manual sau m?car cartea aia de introducere în Unix pân? la cap?t. Altfel, nu ai nici o ?ans? s? fii iluminat ?i vei folosi sed în loc de grep ?i pân? la adânci b?trâne?e…

    P.S. dac? chiar vrei ultimul PID (de?i nu e neap?rat ultimul proces lansat, cum crezi tu) pune un “| tail -n 1” la sfâr?it. Hai c? asta chiar a fost constructiv?!

  3. gramos

    mersi pentru sfaturi; pe bune; eu nu vorbeam, totusi, despre “ultimul PID”; vorbeam despre prima instanta lansata a unui program sau instanta unui program care are PID-ul cel mai mic;

    asta omoara kp al meu, in timp ce killall omoara toate instantele (daca sunt mai multe) si n-are optiune prin care sa-i spui sa se poarte ca si kp (am citit manualul);

    de ce am ales sed in loc de grep nu mai tin minte; exista totusi un motiv, cred 🙂

    e complicat cu atribuirea de opinii; eu nu m-as grabi sa vorbesc despre ce crede altcineva; se vede treaba ca daca te pricepi la un limbaj artificial asta nu te ajuta neaparat sa intelegi ceva din limbajul natural 🙂

  4. stefantalpalaru

    Ma limitez la limbajul artificial atunci 😉
    Ruleaz? separat pipe-ul din backticks pe un program cu mai multe procese ?i ai s? vezi c? le ob?ii pe toate. Dac?-l vrei doar pe primul folose?te “head” în loc de “tail”. Ziceam c? ordinea PID-urilor nu reflect? ordinea lans?rii în execu?ie pentru c? Linux începe s? aloce de la început ID-uri libere atunci când ajunge la valoarea maxim?, iar cu un anumit patch poate s? le atribuie de la început random.

Comments are closed.