W /dev/tty1
pliku 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 xconsole
nie wyświetla żądanych wiadomości, edytuj swoje pytanie, aby wspomnieć, skąd pochodzą te wiadomości.
Jeśli nie możesz xconsole
wyś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 .xinitrc
lub .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>&