Bądź: Wyszukaj na stronie z użyciem Google
reklama:

piątek, 14 listopada 2008

Co robić gdy Ubuntu się zawiesi

Autor: , 21:00, piątek, 14 listopada 2008


Każdy, nawet najlepiej zaprojektowany system, ulega czasem pod wpływem źle działającej aplikacji. Nie inaczej jest z Ubuntu. Mimo iż trudno w nim doświadczyć "twardego restartu", to co jakiś czas zdarza się, że jakaś aplikacja przestanie odpowiadać. Zwykle nie skutkuje to całkowitym zawieszeniem systemu, jednak na słabszych maszynach może skutecznie zniszczyć efekty pracy w czasie danej sesji. Pokażę, co można zrobić, gdy któraś z aplikacji przestanie reagować na polecenia użytkownika.

Na początek: jeśli korzystamy lub korzystaliśmy z systemów z rodziny Windows powinniśmy zapomnieć o skrócie klawiszowym 'Ctrl+Alt+Delete'. Użycie go w Ubuntu nie skutkuje żadną reakcją ze strony systemu. Często po przesiadce z Windowsa odruchowo wciskamy tę kombinację, a gdy zawodzi - użytkownicy zwykle nie wiedzą, co robić i zwyczajnie restartują sprzętowo komputer, co jest zwane wspomnianym wcześniej twardym restartem. Jak na ironię, twórcy Linuksa przewidzieli bardzo wiele opcji rozwiązania różnych awaryjnych sytuacji.

Jedną z najprostszych czynności, jaką można wykonać po zawieszeniu się programu, jest zabicie jego procesu. Powinno to odciążyć system i przywrócić go do równowagi. Procesy możemy kończyć na wiele sposobów. Jednym z najbardziej przyjaznych jest dodanie do jednego z paneli apletu 'Wymuszenie zamknięcia'. By to zrobić, klikamy na dowolny panel (pasek) prawym przyciskiem myszy i z menu kontekstowego wybieramy 'Dodaj do panelu'. W nowo otwartym oknie wyszukujemy aplet 'Wymuszenie zamknięcia' i kończymy klikając 'Dodaj'.


Opis dodatku powinien rozwiać wszelkie wątpliwości: 'Wymusza zakończenie źle działającego programu'.

Teraz, gdy będziemy chcieli zakończyć jakiś program, wystarczy kliknąć raz na ikonkę apletu, a następnie na okno źle działającego programu. System zakończy działanie procesu.


Innym popularnym sposobem kończenia aplikacji jest zabijanie ich procesów z poziomu monitora systemu. By go uruchomić, przechodzimy do menu 'System=>Administracja=>Monitor systemu'. W oknie programu klikamy na zakładkę 'Procesy', a następnie na interesujący nas klikamy prawym przyciskiem myszy i z menu kontekstowego wybieramy 'Zakończ proces'.


Zabijać procesy można też oczywiście z poziomu konsoli. Służy do tego polecenie o wdzięcznej nazwie 'killall'. Jest to właściwie najprostszy sposób na zakończenie "niewygodnego" programu, o ile znamy nazwę procesu. Wystarczy w terminalu poprzedzić nazwę procesu poleceniem killall, żeby został on zabity przez system. Znowu posłużę się tu przykładem kalkulatora. Kalkulator dla GNOME nosi nazwę Gcalctool, więc by zakończyć proces kalkulatora, wpisujemy w konsoli:
killall gcalctool
Prawda, że proste? Przejdźmy zatem do bardziej nietypowych sposobów na odwieszenie systemu. Często, by dać odetchnąć pulpitowi, restartuje się popularnie zwane X-y, czyli powłokę graficzną systemu. Całą czynność wykonuje się prostym skrótem klawiszowym, który ma działanie natychmiastowe, więc proszę być ostrożnym. Jest to dokładnie kombinacja klawiszy 'Ctrl + Alt + Backspace'. Po jej użyciu wszystkie widoczne okna powinny się natychmiast zamknąć, a my zostaniemy cofnięci ponownie do ekranu logowania.

Jeśli 'Ctrl + Alt + Backspace' nie przyniesie oczekiwanego rezultatu, powinniśmy zainteresować się klawiszem 'SysRq' (u mnie w laptopie pokrywa się on z klawiszem 'Print Screen'). Jego odpowiednie kombinacje potrafią czynić istne cuda.
Zazwyczaj kombinacja 'Alt + SysRq + K’ powinna pomóc. Jej zadaniem jest zakończenie wszystkich istniejących procesów. Chyba nie muszę przypominać, aby nie nadużywać tego skrótu :)

Ostatecznym rozwiązaniem (przed twardym restartem) jest użycie dość skomplikowanego skrótu. Należy trzymając wciśnięte klawisze 'Alt + SysRq' po kolei wybierać znaki ‘R’ ‘E’ ‘I’ ‘S’ ‘U’ ‘B’. Są to litery czytanego od tyłu wyrazu 'BUSIER'.

Jak widzicie, sposobów na zwieszonego Linuksa jest dość dużo, szczególnie biorąc pod uwagę to, że przedstawiłem w tym artykule tylko te najpopularniejsze. Mam nadzieję, że po dokładnej lekturze będziecie wiedzieli co zrobić, gdy następnym razem jakiś program odmówi współpracy.

Tagi:

Komentarze 23 comments
Tomaas Hara pisze...

Przydatny artykuł. Dzięki.

uosiu pisze...

killall slabe czasem jest, nie potrafi zabic mocno powieszonego procesu
pkill -15 proces
jak za malo to
pkill -9 proces

Albi pisze...

uosiu: Od czego jest killall -9? ;)

Anonimowy pisze...

Komeda ctrl+alt+f3... Wyłącza środowisko graficzne i odpala tekstowe. Komeda reboot i tyle:) Używam tego jak całe środowisko padnie

bns pisze...

@anonim wyżej
Nie zamyka graficzne środowisko i nie odpala tekstowe trl+alt+f3, bo po wciśnięciu kombinacji klawiszy, tylko między nimi się przemieszczasz. Rónie dobrze możesz wcisnąć trl+alt+f1-f6 na f7 masz środowisko graficzne.
Z tym rebootem to ala Windows-way ;)
W najgorszym wypadku wystarczy ctrl+shift+backspace (restart X - serwera graficznego) i wszystko hula ;)

kuruni pisze...

Inny sposób na zapamiętanie kombinacji Alt + SysRq' + ‘R’ ‘E’ ‘I’ ‘S’ ‘U’ ‘B’:
"Raising Elephants Is So Utterly Boring" albo "Reboot Even If System Utterly Broken" :)

Enlik pisze...

Może być tak, że zawieszony program blokuje całe "iksy". Można wtedy przełączyć się za pomocą wspomnianej kombinacji ctrl+alt+f5 (lubię na 5. terminal, bo F5 leży w wygodnym miejscu ;]), zalogować się i użyć polecenia killall (lub killall -9) do zabicia procesu.
Warto użyć polecenia top do zbadania, który proces zajmuje najwięcej procesora/pamięci...
Powrót do ekranu z X Window System: ctrl+alt+f7.

Anonimowy pisze...

Warto również wspomnieć o xkill, jest to programem mającym podobną funkcjonalność do ctrl+esc w kde.

justyn pisze...

W 7.10.zdarzało mi się czasem że powiesiło mi się wszystko,łącznie z klawiaturą.System nie reagował ani na mysz ani na klawisze.Można było sobie klikać.Zostawał tylko twardy restart.Ustąpiło samo po upgrade do 8.04.Do dziś nie wiem co było przyczyną,nie zauważyłem żadnej prawidłowości.

Paool pisze...

przydatne, o części sposobów nie wiedziałem - i oby się nie przydawały za często! ;)

Anonimowy pisze...

Justyn przyczyną problemu na 99% był flash bądź java. Na 8.04 u mnie czasami występuje - w tym wypadku java.

Marcin Łępicki pisze...

Jeszcze można wspomnieć o możliwości zalogowania się via ssh na swój komputer, jeśli to x-sy nam sprawiają problem. Czasem pomaga ;)

A skróty z SysRq nie były mi znane, dzięki!

Andrzej Kobylański pisze...

A u mnie to owszem działa, ale tylko jak się przełączę do konsoli. Pod iXami niestety ni chuchu. Wie ktoś może jak to obejść?

Anonimowy pisze...

Anonimowy wspomniał kilka pozycji wyżej o świetnym xkill.
Wpisujemy xkill w terminalu lub oknie Alt+F2 a wtedy nasz kursor zmienia się w mordercę!

Anonimowy pisze...

Jak zalogować się przez SSH? Pytanie do Marcina Łęckiego lub innych wiedzących.

yellky pisze...

w moim 7.10 podobnie jak u justyna czasami zawieszalo sie wszystko - zniknelo jak reka odjal gdy przestalem podkrecac procesor (a uzywalem tylko standardowej opcji +10% w biosie)

piotrek pisze...

Temat swoje a treść swoje, autor opisuje w większości zwieszenie aplikacji a nie systemu a to kolosalna różnica. Dopiero pod koniec zaczyna się właściwy tekst. Takie małe fopa ;) Nie żebym się czepiał, ale tyłem na przód to jest...

Marcin Łępicki pisze...

@Anonimowy:

Wybacz że tak późno, ale nie obserwowałem komentarzy. Żeby to zrobić musisz sobie na komputerze zainstalować pakiet ssh, zawiera on zarówno serwer jak i klienta ssh w ubuntu. Upewnij się że jest to uruchomiona usługa, na przykład poprzez Startup Manager z menu Administration (nie wiem jak to w spolszczonej wersji jest), albo poprzez wydanie komendy /etc/init.d/ssh start - ale domyślnie wszystko powinno być włączone.
Kolejną rzeczą której potrzebujesz jest adres IP komputera - to już zależy od tego jak wygląda Twoja sieć. Najlepiej oczywiście żeby był to statyczny adres IP, wtedy po prostu to wiesz. Jeśli masz np. router i adresy dynamiczne, to często na routerze w panelu administracyjnym można to sprawdzić.

Łączyć się możesz z innego komputeraz linuksem, z pakietem klienta SSH poleceniem ssh nazwa_uzytkownika@ip_komputera, na przyklad ssh user@192.168.0.1 - można też łączyć się wykorzystując domenę itd. ale pewnie w domu tego nie będziesz konfigurować. Logujesz się swoim hasłem i powinieneś mieć już dostęp do wszystkiego z konsoli. Na windows do podobnego celu może służyć programik putty - w google znajdziesz go bez problemu.

Taki serwer ssh nie ogranicza się do konsoli, można np. przesyłać pliki - wyklikać można to w Gnome (menu Places/Connect to Server...), pewnie jakoś też w KDE, na windows jest znakomity program winscp. Jeśli wolisz konsolę - można przesyłać pliki poprzez komendę scp. A i to tylko ułamek możliwości :)

AlfaDron pisze...

No dobra tylko że system się zawiesił i nic nie można wykonać, żadnych ustawień i zabijania procesów ?

Zamrożony obraz wraz z kursorem

AlfaDron pisze...

No dobra tylko że system się zawiesił i nic nie można wykonać, żadnych ustawień i zabijania procesów ?

Zamrożony obraz wraz z kursorem

ak pisze...

Nic nie działa. Żadne komendy czy triki. System zawieszon jak śliwka w g. Kursor sobie mykał przez pewien czas szukania kombinacji na klawiaturze a teraz znikł a ekran zamrożony.
Operacje jakie wykonywałem to zbadanie znacznika na stronie www. Wszystko pod Chromem. Czyli sroka na betonowo. Czy to jaki krytyczny błąd Ubuntu? Pozdrawiam.

ak pisze...

Podziało alt print screen b. Ale reset? Inne kombinacje nic nie dały. Działam na 14.04lts to chyba nie to czego się spodziewałem po Ubuntu i zawieszeniu systemu.

Piotr Iwański pisze...

co mam zrobić jeśli. właczę system a po chwili system siada, bez twardego restu sie nie obejdzie. mam ubunt 15.10. co mam zrobic by sie tak nie działo??

Prześlij komentarz


Popularne posty

Etykiety