Linux na wesoło
16.09.2010 01:26
Nudny dzień, nic się ciekawego nie wydarzyło, a na dworze leje. Nie ma co robić, nic się nie chce. Wtem, kolega zaproponował, aby uruchomić dobrze znany mu program. Program ten zwie się Impreza, a jego niestabilne wydanie daje ponoć dużo rozrywki. Zanim jednak wykonamy program Impreza, będący w bardzo niestabilnym wydaniu, musimy wykonać dobrze znane nam skrypty, które zabezpieczą najważniejsze rzeczy w systemie a w szczególności katalog domowy /home...
Odpalamy terminal i zaczynamy działania zabezpieczające rzeczy w naszych systemach, przed odpaleniem programu Impreza. Na sam początek wykonujemy skrypt, który wymusza zakończenie zadań, które dawno miały być już wykonane: "sh shut_not_ended_processes.sh". Trzeba zaznaczyć, że skrypt ten z racji wymuszenia szybszego zakończenia niektórych zadań, nie zawsze wykonuje się poprawnie, ale przeważnie jest na tyle sprytny, że nie spowoduje on pojawienia się komunikatu "żonapanic" i ochroni nasze jądra... Musimy także dopilnować, aby nie zabić ważnego procesu systemowego "żona" i przy okazji wykonywania tego skryptu nie osierocić potomnych procesów, tak aby proces żona i potomki były na chodzie, a swoje parametry, podczas wykonywania programu Impreza, nadal przechowywały w katalogu /home/.żona, /home/.potomek1..2..itd. Nie trzeba mówić, co się stanie w systemie, jak wykonamy w terminalu: "sudo killall żona". Prawdopodobnie z procesów potomnych żony powstaną osierocone procesy zombie i rozniosą cały katalog /home w drobny mak, tak więc należy zwrócić szczególną ostrożność, aby proces żona był na chodzie. Wiedząc, że kumpel to żartowniś, należy spodziewać się, że po uruchomieniu programu Impreza z poziomu super usera (bo przecież jesteśmy super userami), możemy spodziewać się bajzlu w systemie, tak więc zalecane jest zabezpieczenie ważniejszych rzeczy z /home i zapamiętać ustawienia systemowe. Dobrze byłoby zapamiętać także adres, bo w naszej sieci zazwyczaj jest on przyznawany przez serwer raz i nie jest potem odnawiany, a prawdopodobne jest to, że program Impreza pozwala zmieniać adresy w locie. Możliwe jest to, że przypomnimy sobie adres, jak zapamiętamy naszą bramkę.
Ok, chyba wszystko gotowe. Możemy odpalać program Impreza: "sudo ./Impreza". "Na oko" system wydaje się pracować stabilnie, a obciążenie jednostki centralnej (w moim przypadku jedno-rdzeniowej) jest w normie, o czym mówi polecenie "pot", którego jest maksymalnie 3,5%. Kumpel mówi, że program ten zaczyna się rozkręcać, jak uruchomimy specjalnie przygotowane do niego plug-in'y. Pobrałem wcześniej większość z dostępnych plug-in'ów. Nie pobrałem takich pluginów, jak koka.gz, marycha.gz i inne będące w kontenerze dragi.tgz, ponieważ słyszałem, że są we wczesnej fazie rozwojowej i potrafią natychmiast zawiesić system - tylko dla hadrcore'ów, a ja nie uważam się za takiego, więc nie ryzykuję totalnej zwiechy systemu. Ok, więc załaduję jakąś wtyczkę. Na pierwszy strzał idzie music.gz. Rozpakowałem paczkę i co widzę: dwa moduły music.ko i dance.ko, binarkę play_music, skrypt play.sh i jakieś ogg'i. Uruchamiam skrypt play.sh z rozszerzeniem -‑dance:
Searching for Impreza....done Loading modules music.ko........................done dance.ko........................fail - modules beer.ko or vodka.ko not loaded or not loaded properly Searching for oggs..........done
Git, z głośników płynie muzyczka, jest całkiem ok. Ale moduł dance się nie uruchomił... Zacząłem odpalać wtyczki chyba nie w tej kolejności. Ale to nic, zobaczymy co będzie dalej. Żeby załadować moduł dance, wymagane jest odpalenie któregoś z modułu beer.ko lub vodka.ko. Te moduły były w pluginach beer.gz i vodka.gz z konteneru alc.tgz. Rozpakowałem więc paczkę beer.gz i załadowałem beer.ko do systemu. Moduł ten spowodował, że w programie Impreza pojawiły się dodatkowe opcje: aktywował się przycisk "next beer", oraz pojawiła się funkcja załadowania modułu dance.ko prosto z poziomu gui programu - bosko, wreszcie coś się dzieje, pomyślałem. Nie zastanawiając się długo kliknąłem aktywowany klawisz "next beer". Widząc niewielkie zmiany oprócz obciążenia procesora, kliknąłem ten klawisz jeszcze kilkakrotnie. Ooooo! Coś niebywałego! Widać już konkretne zmiany. Efekt "lupa" dobrze znany z compiza - działa nadzwyczaj płynnie, jak na tę klasę sprzętu... No muszę pochwalić kumpla - dobry program, fajne efekty. Skorzystałem z funkcji ładowania modułu dance.ko z poziomu programu - poszło nadzwyczaj gładko. Co jest? Teraz dopiero dostrzegłem, że jest możliwość czatowania z innymi użytkownikami programu Impreza. Wbijam na kanał i tam dowiaduję się, że dzieją się cuda, jak uruchomimy moduły beer.ko i vodka.ko na raz. Nie ma sprawy. Choć przez te żelujące okna było ciężko dostać się z powrotem do terminala, aby rozpakować paczkę vodka.gz i załadować moduł vodka.ko, to było warto. Iksy dosłownie oszalały - ale jazda. Dwa pulpity na jednym obszarze roboczym i to na tak leciwym sprzęcie - niebywałe. Funkcji "pot" nie da się jednak oszukać. Moduł dance zajmuje coraz to więcej zasobów i coraz bardziej obciąża procesor. Moduł vodka, wygląda na to, powoduje zwiechy procesu pulseaudio, a moduł beer coś robi z menadżerem sieci, bo coraz więcej jest pakietów wychodzących a coraz mniej przychodzących - tak jakby system powoli tracił kontakt ze światem na zewnątrz. Widać to po lagach na czacie. Nie wiem czemu, ale z czatu zaczynają powoli znikać kolejni użytkownicy programu Impreza. Teraz nie wiem, czy to wina mojego systemu, czy innym użytkownikom padł system lub też opuścili program dobrowolnie - mniejsza o to, teraz muszę się skupić nad stabilnością mojego systemu. Kurcze, ciężko cokolwiek ustalić, bo pulpit szaleje, a moduł beer uruchomił proces wycieczka_do_wc, który dodatkowo obciążył system - teraz nie wiem, czy to normalne czy nie, ale proces po dłuższej chwili wykonał się i na szczęście prawidłowo zakończył. Na pulpicie totalna jazda - chyba będzie trzeba zrestartować iksy - zwlekam jednak i postanawiam przedmuchać radiator na procku myśląc, że ulży to jednostce centralnej. Z doświadczenia wiem, że najlepiej wykonać to w łazience, gdyż brud z radiatora łatwiej zmyć z kafelek niż, np. z dywanu. Wydmuchałem z 70% brudu z kompa i... chyba, przynajmniej chwilowo, pomogło. Funkcja "pot" to potwierdza i wygląda na to, że iksy pomimo bardzo żelujących okien lekko się poprawiły, co pozwoliło mi odkryć w programie dodatkowy moduł ładowany przez sieć, a mianowicie sex.ko... Coś wifi szwankuje, więc postanawiam moduł pociągnąć z druta. Podczas ściągania modułu, trzeźwość umysłu pozwoliła mi jednak przypomnieć sobie, że koledzy mówili o wielu potomnych procesach wywołanych przez uruchomienie tego modułu, nie mówiąc o komunikacie "żonapanic". Patrząc na i tak niestabilną pracę systemu, postanawiam nie ładować tego modułu - chowam kabel i nie łączę się... Chwilowo powracam na czat (który jakoś idzie przez to wifi), bo dostrzegam jednego aktywnego użytkownika. Namówił mnie, abym jeszcze raz kliknął klawisz "next beer", i system może powróci do normalności. Niestety... Iksy padły - totalna kaszana. Przełączam się do konsoli, sprawdźmy: "lsmod" - Oh my God. Moduły vodka i beer szaleją. A co na to "ps -A"? Niebywałe! Proces pulseaudio podzielił się na dwa procesy! Osobno jest pulse i osobno audio. Nie wierzę, jeszcze raz: "ps -A".
Teraz wszystko jasne... Pulse jeszcze jest, ale audio już się straciło. Widzę, że brakuje też procesów music i dance, który został usunięty przez jądro jak stracił się krytyczny proces systemu chodzenie.ko. Wygląda na to, że system przeszedł w stan uśpienia... No to totalny reset, pomyślałem. Odczekałem dłuższą chwilę, myśląc że system da rady, jak spróbuję załadować moduł chodzenie.ko: "sudo modprobe chodzenie" - cannot load module, while vodka or beer is loaded. Usuwanie modułu vodka i beer spełzło na niczym - chyba jestem już zbyt zmęczony. Odczekałem jeszcze dłuższą chwilę. Nic z tego, czas wykonać restart: "sudo shutdown -r now". BIOS się odezwał, system się ładuje. Coś jednak musi być nie tak, bo moduł chodzenie strasznie pochłania zasoby sprzętowe: cpu 80%, pamięć 80% i spowalnia pracę iksów oraz audio. Prawdopodobnie szuka w pamięci bramki i adresu... Co to? Dalej żelujące okna? No tak, program Impreza uruchomiony na prawach super usera dodał moduł beer.ko do /etc/modules i odpalił się wraz z systemem - nic nie szkodzi, tym razem nie pochłania aż tyle zasobów - może nie przeszkodzi to modułowi chodzenie, który aktualnie szuka adresu. tym razem nic nie odpalam jako super user - wolę być zwykłym userem, przynajmniej nic nie namieszam w systemie. Okna strasznie żelują, a audio tnie, jak nie wiem co. Chodzenie jednak odszukało adres i bramkę. Próbuję się dostać do katalogu /home - jest zaszyfrowany... System wydaje się chodzić coraz sprawniej (przecież chodzenie odszukało adres i już nie zajmuje tyle zasobów), bo odszukał sobie klucz i odszyfrował katalog /home, w którym są przechowywane parametry modułu "żona" i potomnych. Moduły te wyglądają na uśpione, więc niech tak na razie zostanie, dopóki system nie odzyska całkowitej sprawności...