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.