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.
Trzeba było jeszcze napisać skąd wziąć pid lub nazwę. Ja zarówno wyszukiwanie jak i ubijanie przeprowadzam za pomocą htop.
to jeszcze bys napisal, co zrobic z procesem, na ktory kill -9 nie dziala…
dokladnie tak, nic nowego nie zostalo napisane. A o tym co zrobic kiedy kill -9 nie dziala chcialbym poczytac 🙂