Zaczynamy zabawę z Debianem #3: Wreszcie coś przydatnego – trochę magii i… procesy

W trzeciej części serii „Zaczynamy zabawę z Debianem” dowiesz się czegoś bardziej przydatnego w życiu codziennym Linuksiarza. O ile listować katalogi, tworzyć pliki itd już umiesz, to nie nauczyłem Cię jeszcze jak np. zabić zawieszony proces, lub uruchomić coś w tle. Artykuł ten nie będzie długi, ponieważ część z Was Linuxa potrzebuje jedynie żeby przebrnąć przez drugi semestr SO na WWSI. Sam wiem jak bardzo nie interesuje mnie np. programowanie i po pierwszym semestrze mogłoby się jak dla mnie skończyć ( moglibyśmy już wybierać specjalizację 😛 ). W związku z tym nie chcę zaśmiecać Wam (zwłaszcza na początku tej serii) głowy bardziej zaawansowanymi rzeczami, a jedynie tym co się przyda w aktualnym semestrze. Temat ten za pewne poruszę za jakiś czas – w kolejnej serii która będzie kierowana już do nieco bardziej zaawansowanych użytkowników.

Nie robiliśmy do tej pory jeszcze nic czego wykonanie trwałoby dłużej niż 30 sekund, więc uruchamianie procesu w tle było trochę bez sensu. Jak jednak wiesz już z codziennej pracy z Windowsem niektóre operacje trwają trochę dłużej. Załóżmy jednak, że mamy jedną sesję terminala, a procesory przecież kilku-rdzeniowe. Przecież nie będziesz czekał na zakończenie operacji która trwa np. godzinę tylko w systemie od M$ po prostu zminimalizujesz program który właśnie coś przerabia – jak to zrobić w Linuxie? Do tego celu służy nam pakiet screen. Jesteś Windowsiarzem, więc za pewne to słowo kojarzy Ci się ze zrzutem ekranu. W Linuxie pakiet ten służy do tworzenia „wirtualnych ekranów” na których możesz uruchamiać różne aplikacje, a później przełączać się między nimi/minimalizować je/maksymalizować/zamykać.

Spróbujmy uruchomić sobie taki „wirtualny ekran” wpisując polecenie screen. Oho…

bash: screen: nie znaleziono polecenia

„Autorze jak mogłeś być tak bezczelny, że nie dodałeś mi tego do wirtualki którą pobrałem?!”. Doinstaluj sobie screena sam 🙂 Dopiero raz coś instalowałeś, więc przypomnijmy sobie jak zainstalować ten pakiet:

Najpierw wpisujemy:
$ su
I wpisujemy hasło, czyli „qaz123”. Tym samym jak już pamiętasz weszliśmy na konto z uprawnieniami administracyjnymi
Następnie:
# apt-get install screen
Czekamy chwilę i wuala! Pakiet zainstalowany 🙂

Możesz być z siebie dumny – to już drugi zainstalowany przez Ciebie pakiet. Na Twoim miejscu wydrukowałbym sobie jakiś dyplom 😀

Wracając do naszego screena – wpisz teraz polecenie screen. Widzisz za pewne coś takiego:

screen po uruchomieniu

Klikamy teraz ENTER.

screen po uruchomieniu 2

Widzimy zwykły terminal. O co tu chodzi? – Zauważ, że nie możesz przewinąć okna w górę i w dół, a przed chwilą mogłeś. Wpisz dla testu polecenie ls. Jak pamiętasz – wyświetli Ci ono zawartość katalogu w którym jesteś. Po jego wykonaniu wpisz exit.

exit po screenie

Popatrz – możesz znów przewijać okno w górę (trzeba chwilę poscrollować, bo screen zostawił po sobie trochę odstępu od ostatnich poleceń). Czyżbym Cię nie oszukał? O ile nie były to czary i nie byłeś w innym wymiarze to wygląda na to, że utworzyłeś wirtualny ekran! Wróćmy jednak do screena. Uruchom go jeszcze raz wpisując ponownie screen. Wpisz teraz ls, utwórz nowy plik wpisując echo „Oto tekst który zaraz zniknie” >> magia.txt, następnie wpisz cat magia.txt i po tych wszystkich operacjach (których wyniki widzisz na ekranie) kliknij na klawiaturze CTRL+A, a później CTRL+D. Tym razem screen się nie zamknął, a jedynie zminimalizował – aby go przywrócić na swój ekran wpisz screen -r.

Być może po przeczytaniu tego co napisałem odezwie się ktoś kto powie „stary – przecież ja mogę się przełączać między ekranami skrótem klawiszowym” – możesz, ale takie procesy nie będą działały po zamknięciu terminala/wylogowaniu, a screeny tak. Docenisz tą wiedzę, gdy będziesz kiedyś łączył się ze zdalnymi maszynami po SSH.

O screenie możnaby mówić jeszcze długo – choćby to, że screenów można uruchamiać kilka, przy uruchamianiu można je nazywać wpisując screen -S nazwa_screena. Później listować uruchomione screeny wpisując screen –ls i maksymalizować konkretne wpisując screen -r nazwa_screena. Ale o tym albo będziesz jeszcze słyszał na SO, albo sobie poczytasz w następnej serii. Nie chcę już teraz rozwijać tego tematu, ponieważ tak jak już wspominałem chcę abyś po pierwszej serii o Debianie rozumiał wyłącznie podstawy + to co jest potrzebne na SO na drugim semestrze WWSI.

Wiesz już jak minimalizować i maksymalizować procesy. Dobrze byłoby wiedzieć jak zabijać zarówno procesy które widzimy, jak i te których nie widać na ekranie. Również i to nie jest szczególnie skomplikowane.

Aby wyświetlić listę procesów uruchomionych aktualnie przez Ciebie wpisz w terminal:

$ ps

ps

Co tu tak biednie? Panie – toż to nie możliwe żebym miał uruchomioną tylko garstkę procesów. Tak jak mówiłem – to są procesy uruchomione przez Ciebie. Jeśli chcesz zobaczyć więcej Twoich procesów to wpisz:

$ ps U student

ps U student

W miejsce studenta możesz wpisać nazwę innego użytkownika.Lista zrobiła się tak długa, że nie było sensu robić screena jej całości. Jak widzisz jest tu m.in. terminal, a także proces który sam uruchomiłeś przed chwilą – ps U student (na moim screenie ma on PID 2284).

Aby zabić jakiś proces wystarczy wpisać:

$kill -9 PID_procesu

Dla przypomnienia – PID procesu to jego ID które widzisz w pierwszej od lewej kolumnie po wpisaniu polecenia ps. Jako, że znane nam do tej pory polecenia trwają zbyt krótko abyśmy mieli szansę zdążyć je zabić to uruchomimy sobie jakąś aplikację z trybu graficznego. W tym celu klikamy w lewym górnym rogu ekranu „Podgląd” -> W pole „Wyszukiwanie…” wpisujemy „Iceweasel” i klikamy ENTER. Po chwili czekania powinno pojawić nam się okno przeglądarki które od razu przełączamy klikając znów „Podgląd” i wybierając terminal (idioto-odporny obrazek „co kliknąć” poniżej).

Przejście do terminala

Teraz jeszcze raz wpisujemy:

$ ps U student | grep iceweasel

Co właśnie zrobiliśmy? Najpierw polecnie ps U student wyświetliło nam wszystkie nasze procesy, a następnie w potoku (to ten znak „|”) dodaliśmy, że chcemy aby nasz wynik został przefiltrowany w poszukiwaniu słowa „iceweasel”. Iceweasel to przeglądarka którą uruchomiliśmy przed chwilą. Jak widać otrzymaliśmy dwa wyniki [U KAŻDEGO Z WAS PID BĘDZIE INNY!]:

ps U student | grep iceweasel

Czemu dwa? – Jeden (na screenie ma PID 2365) to nasza przeglądarka, a drugi (na screenie ma PID 2457) to jak widzimy proces „grep iceweasel” który powstał podczas filtrowania. Ten drugi zamknął się od razu po wyświetleniu nam wyniku. Wiemy już, że przeglądarka którą przed chwilą uruchomiliśmy ma PID 2365 . Z tą wiedzą możemy zabić nasz proces wpisując:

$ kill -9 2365
[KAŻDY Z WAS W MIEJSCE „2365” MUSI WPISAĆ SWÓJ PID KTÓRY OTRZYMAŁ WPISUJĄC POPRZEDNIE POLECENIE!]

Teraz klikamy jeszcze raz „Podgląd” i jak widzimy – w miejscu gdzie mieliśmy przed chwilą terminal i przeglądarkę – teraz mamy jedynie terminal 🙂

Tyle z podstaw o obsłudze screena i procesów. Link do następnego artykułu zobaczysz w tym miejscu lub na naszej grupie WWSI 🙂

1 thought on “Zaczynamy zabawę z Debianem #3: Wreszcie coś przydatnego – trochę magii i… procesy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *