Dodatek B Typowe problemy z terminalami
Terminal źle wyświetla polskie litery
Przyczyna — należy sprawdzić, czy nie zachodzi jeden z poniżej podanych przypadków:
• terminal ma ustawiony niewłaściwy generator znaków w SelUpie. na przykład:
• znaki 7-bitowe zamiast 8-bitowych;
• niewłaściwy zestaw znaków;
• w pliku konfiguracyjnym /etc/gettydefs łącze terminala ma zdefiniowane znaki 7-bitowe (CS7) zamiast 8-bitowych (CS8) lub ma włączone obcinanie 8-go bitu (ISTRIP zamiast -ISTRIP);
• program aplikacyjny wysyła niewłaściwe kody polskich liter;
• w przypadku terminali z polskimi znakami ładowalnymi zewnętrznie (na przykład terminale wyse60) — nie załadowano do pamięci terminala definicji tych znaków (fontów) lub po załadowaniu wyłączono zasilanie terminala;
• w przypadku SCO UNIXa jest źle skonfigurowany mechanizm konwertowania znaków, aktywowany poleceniem mapchan;
• terminal nie ma zainstalowanego modułu opisującego narodowy zestaw znaków (na przykład modułu NLS w systemie HP-UX) lub przygotowano niewłaściwy ich opis, bądź wskazano w zmiennej LANG niewłaściwą nazwę języka.
Terminal źle wyświetla wszystkie znaki
Przyczyna — niewłaściwe ustawienie parametrów w SetUpie terminala, na przykład:
• niezgodność w ustawieniu szybkości terminala i szybkości ustawionej w pliku konfiguracyjnym /etc/inittab;
• ustawiony niewłaściwy tryb pracy terminala.
Terminal nie wyświetla żadnych znaków
Przyczyna — jak wyżej lub źle ustawione regulatory jaskrawości.
Terminal zablokowany — nie przyjmuje żadnych znaków z klawiatury Przyczyna:
• wcześniej wystąpiło nieprawidłowe zakończenie programu aplikacyjnego, w wyniku którego terminal jest pod wpływem ostatnio wysłanych sekwencji sterujących, które go zablokowały;
• wcześniej wykonano na terminalu polecenie lock, blokujące na pewien czas obsługę klawiatury terminala.
Próby odblokowania terminala'.
• nacisnąć CtrI-C lub Del;
• pomimo że terminal nic nie wyświetla wprowadzić z klawiatury polecenie inicjujące terminal:
Ctrl-J stty sane CtrI-J
• wyłączyć i włączyć zasilanie terminala:
• skasować (korzystając z innego terminala) procesy związane z danym terminalem (programy uruchomione na danym terminalu). Czynności te są dostępne tylko dla użytkownika o nazwie root i użytkownika zalogowanego z tą samą nazwą jak na zablokowanym terminalu.
Wykonać polecenie: ps -t identyfikatorJerminala, na przykład:
ps -t tty1p1
lub, jeżeli nie pamiętamy identyfikatora terminala, polecenie ps -ef
W pierwszym przypadku wyświetlona zostanie lista procesów związanych z danym terminalem. W drugim przypadku — lista wszystkich aktywnych w systemie procesów; konieczna więc jest znajomość nazw procesów uruchomionych na zablokowanym terminalu. Jeżeli wiemy, że ostatnio uruchomionym procesem był procxxx, to można ograniczyć liczbę wyświetlanych informacji, posługując się dodatkowo poleceniem grep, na przykład ps -ef | g rep procxxx
W obu przypadkach lista wyświetlonych procesów może wyglądać tak:
PID PPID .... TTY COMMAND
627 .... tty0p4 nazwa_procesul
719 .... tty0p3 na.zwa_procesu2
Należy usunąć procesy związane z zablokowanym terminalem, stosując polecenie
kil l w postaci kill -9 pid
gdzie pid jest identyfikatorem procesu, wyświetlanym przez polecenie ps
w pierwszej kolumnie. W przypadku powyższej listy:
kill -9 627 — jeżeli problem dotyczy terminala tty0p4;
kill -9 719 — jeżeli problem dotyczy terminala tty0p3.
Jeżeli na danym terminalu pewien proces (PID) powołał kilka procesów potomnych (ich numer PPID jest zgodny z PID danego procesu), to wykonanie wszystkich z nich można przerwać wskazując — w poleceniu kill —PID procesu nadrzędnego.