Wyświetlanie komunikatów konsoli systemowej w GUI


10

Czy w Linuksie można wyświetlać komunikaty o błędach, które pojawiają się na terminalu trybu tekstowego w trybie GUI, zamiast konieczności naciskania Ctrl+ Alt+ F1lub Ctrl+ Alt+ w F2celu wyświetlania komunikatów za każdym razem, a następnie przełączania się z powrotem do trybu GUI, naciskając Ctrl+ Alt+ F7?

Dziękuję Ci.


Wyjaśniłem temat pytania. Bash jest tylko jedną z wielu różnych powłok dla systemu Linux. Wiadomości są wysyłane do encji, w której działa (np.) Bash, a nie do samej powłoki.
fschmitt

Nie możesz po prostu uzyskać dostępu do / var / log / "blah" i przeczytać odpowiedni dziennik? Zakładając, że jest to proces rozruchu, możesz spojrzeć na /var/log/boot.log
vfbsilva

Odpowiedzi:


6

W /dev/tty1pliku można zobaczyć bieżącą zawartość konsoli tekstowej /dev/vcs1(gdzie 1 to liczba w Ctrl+ Alt+ F1). (Jeśli spróbujesz czytać z /dev/tty1, będziesz konkurował z uruchomionym tam programem o wprowadzanie z klawiatury). Urządzenia vcs są zwykle odczytywalne tylko przez root. Otrzymasz migawkę; nie ma wygodnego sposobu na uzyskanie treści w obecnej postaci.

Program ttysnoop pozwala obserwować ruch na konsoli z innego terminala (w tym terminala X). Ale musisz to wcześniej skonfigurować.


Zamiast próbować wychwytywać wiadomości, które zostały wyprowadzone na konsolę tekstową, ustal, aby wiadomości były kierowane w inne miejsce. Większość takich danych wyjściowych konsoli kończy się w logach systemowych, w plikach pod /var/log. W X (tj. W trybie graficznym) możesz przechwytywać te wiadomości xconsole, co jest częścią standardowej dystrybucji X.

Jeśli xconsolenie wyświetla żądanych wiadomości, edytuj swoje pytanie, aby wspomnieć, skąd pochodzą te wiadomości.

Jeśli nie możesz xconsolewyświetlić żadnej wiadomości, edytuj pytanie, aby uwzględnić dokładny system operacyjny, wszelkie podjęte kroki konfiguracji i każdy wyświetlony komunikat o błędzie.


Jeśli wiadomości nie pochodzą z funkcji rejestrowania systemu, ale z programu uruchomionego w konsoli w trybie tekstowym, lepiej będziesz otrzymywać przekierowania . Zaplanuj uruchomienie programu w następujący sposób:

mv ~/.myprogram.log ~/.myprogram.log.old
myprogram --with arguments 2>&1 >~/.myprogram.log

Następnie możesz odczytać dane wyjściowe z programu z dowolnego miejsca, przeglądając plik ~/.myprogram.log. W szczególności, aby zobaczyć, jak plik rośnie w czasie rzeczywistym, uruchom

tail -n +1 -f ~/.myprogram.log

Jeśli program jest uruchamiany przez skrypty startowe X, lepiej byłoby przekierować wyjście z całej sekwencji uruchamiania X do pliku. W rzeczywistości wiele dystrybucji robi to automatycznie. Jeśli używasz pliku .xinitrclub .xsession, umieść następujący wiersz w pobliżu początku pliku, aby przekierować dane wyjściowe z kolejnych programów:

exec >"$HOME/.xsession-$DISPLAY.log" 2>&

Dziękuję Ci. Po prostu zrobiłem su -c "cat / dev / vcs1" i zadziałało. I tak jak wspomniałeś, była to prosta migawka wiadomości na konsoli, ale to wszystko, czego potrzebowałem.
Jay

@Jay: teraz, gdy widziałem twoje komentarze, mam inną odpowiedź, a mianowicie powinieneś użyć przekierowania w swoich skryptach startowych X. Pozostawiam inne możliwości, ponieważ mogą być przydatne dla innych osób przeglądających archiwum pytań.
Gilles 'SO - przestań być zły'

1

Możesz do tego użyć xconsole. Z jego opisu:

Program xconsole wyświetla komunikaty, które są zwykle wysyłane do / dev / console.

W zależności od konfiguracji, którą wybrała Twoja dystrybucja, być może będziesz musiał uruchomić ją jako root (tj. sudo xconsoleOdpowiednio z su -c xconsole)


Dziękuję Ci. Ale czy istnieje sposób, aby wyświetlić wiadomości, które są już na konsoli po uruchomieniu X? na przykład w mojej sytuacji .. Napisałem skrypt w Pythonie, aby losowo zmieniać tapetę. Skonfigurowałem go tak, aby przy każdym uruchomieniu X skrypt był wywoływany. Ale skrypt nie działa tak, jak chcę, i pojawia się kilka komunikatów o błędach na konsoli. Kiedy uruchamiam Xconsole po wejściu do X, widzę tylko wiadomości wysyłane do konsoli od tego momentu. Strona podręcznika użytkownika xconsole nie mówi nic o przeglądaniu wiadomości, które są już na konsoli
Jay

Możesz w dowolnym oknie terminala (np. Xterm) wyświetlać komunikaty drukowane podczas uruchamiania za pomocą polecenia dmesg.
fschmitt

dmesg pokazuje tylko komunikaty pojawiające się podczas uruchamiania. Nie sądzę, że pokazuje komunikaty, które pojawiają się na konsoli po uruchomieniu i zalogowaniu się i na przykład „startx”.
Jay 14.10

1

Próbowałeś xterm -C? Działa na Ubuntu 17.04.


1
Brzmi comment-godny, ale jeśli Erik by dodać pewien kontekst, wydaje się wiarygodne możliwa odpowiedź /: „C Ta opcja wskazuje, że okno powinno otrzymać wyjścia konsoli nie jest obsługiwane we wszystkich systemach ......”
Jeff Schaller

Uczciwe punkty. Następnym razem zrobię z tego komentarz. Przepraszamy za wszelkie niedogodności.
Erik Bennett

-4

Jeśli chcesz zobaczyć komunikaty konsoli, możesz umieścić na końcu pliku /etc/rc.local,

sleep 60

2
OP chce zobaczyć komunikaty po załadowaniu GUI. To po prostu zmusi system do odczekania minuty przed załadowaniem, więc nie jest to rozwiązanie.
terdon
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.