przystajnik

Jak skutecznie zabijać za pomocą Pingwina

Co po ciężkim dniu przywróci nam błogi uśmiech i rumieńce na szarą twarz? Upuszczenie paru bitów z wrażych procesów, personifikujących całe zepsucie tego świata…

Kill, kill…

Kill to narzędzie o prostej budowie. Przesyła do kernela prośbę o unicestwienie wybranego procesu (SIGKILL). Potrafi też prosić o inne rzeczy (SIGTERM – poprawne zamknięcie, SIGSTOP – zatrzymanie procesu, itp), ale ponieważ jesteśmy na wojnie, będziemy procesy zabijać. Stąd SIGKILL. Destrukcji procesu można dokonać na dwa sposoby:

kill -KILL numer_pid
kill -9 numer_pid

Skomplikowane? Być może. Rozkładając to na czynniki pierwsze, mamy – kill, nasze polecenie, -KILL lub -9 – sygnał żądania, numer_pid – numer procesu który chcemy puścić z dymem. O co chodzi z tymi sygnałami? Jest ich kilka (jak wspomniałem wcześniej), wszystkie można sobie sprawdzić wpisując kill -l – jako parametr polecenie można podawać ich nazwę lub numer. Numer PID też może brzmieć nijako, a jest to najzwyczajniej w świecie numerek przypisany do konkretnego programu – taka niby metka. Dlatego polecenie kill potrafi bezbłędnie ustrzelić ten proces o którym nam chodzi (numery procesów pokaże nam polecenie ps).

Nie czas na te numery, killall

Jeżeli jesteśmy mocno zaaferowani, numery procesów mogą się nam dwoić i troić przed oczyma. Dlatego też powstało polecenie killall, któremu wystarczy podać nazwę procesu, aby killall go dopadł:

killall -9 firefox-bin

Zasada podobna jak powyżej – podajemy numer lub nazwę sygnału (nadal interesuje nas tylko 9, czyli SIGKILL). Niestety, to narzędzie też ma denerwującą czasem przypadłość – nazwa procesu musi być dokładnie podana, dlatego nie wystarczy ‚firefox’ a ‚firefox-bin’. Nieporęcznie?

Piszę i znikasz, pkill

W mniej precyzyjnym szale zniszczenia zakrojonym na większą skalę to właśnie pkill jest tym, co dobrze mieć pod ręką. Polecenie to zabije wszystkie procesy, które w jakimś stopniu będą pasowały z nazwy do podanego przez nas parametru:

pkill firefox

Powyższe wytłucze do ostatniego wszystkie procesy zawierające w nazwie ‚firefox’. Aby upewnić się, w co trafi pkill, można wylistować kandydatów do odstrzału:

pgrep -l firefox

I ew. zmienić nieco kryteria. Kolejna przydatna rzecz narzędzia pkill (jak i killall) to parametr -u nazwa_użytkownika. Dzięki niemu tylko podany użytkownik zostanie ogołocony z posiadanych procesów o podanej nazwie:

pkill -u panjozek firefox

Tylko nudziarze używają konsoli, xkill

Powyższe krwawe żniwa odbywały się za pomocą konsoli tekstowej. To skuteczne, szybkie i precyzyjne narzędzie, nie ma co udawać, że Linux go nie posiada. Jednak zwieńczeniem radosnego wycinania procesów może być polecenie xkill, które w środowisku graficznym pozwoli nam wskazać kliknięciem okno nielubianego programu. A co dalej się z nim stanie, to już wiecie.

Wygodnie jest przypisać sobie to polecenie pod skrót klawiszowy (u mnie ctrl + delete).

Oczywiście temat zabijania procesów nie został wyczerpany, jak też opis tych poleceń nie zawiera wszystkich dostępnych w nich parametrów. Jednak, do codziennego szybkiego radzenia sobie w krytycznych sytuacjach, proste metody opisane powyżej będą jak znalazł.

„War has never been so much fun…”

Zbliżają się święta, a że będzie jeszcze gorzej, stąd ta tematyka najbliżej opisująca stan ducha, który udziela się podczas codziennego przeciskania się przez tłum prących donikąd ludzi.
 

Post navigation

  • Marian

    Trzeba było jeszcze napisać skąd wziąć pid lub nazwę. Ja zarówno wyszukiwanie jak i ubijanie przeprowadzam za pomocą htop.

  • bob_er

    to jeszcze bys napisal, co zrobic z procesem, na ktory kill -9 nie dziala…

  • jolek

    dokladnie tak, nic nowego nie zostalo napisane. A o tym co zrobic kiedy kill -9 nie dziala chcialbym poczytac 🙂

Translate »