Вы можете увидеть текущее содержимое текстовой консоли /dev/tty1
в файле /dev/vcs1
(где 1 - число в Ctrl+ Alt+ F1). (Если вы попытаетесь читать с /dev/tty1
, вы будете конкурировать с запущенной там программой за ввод с клавиатуры.) Устройства vcs обычно доступны для чтения только пользователю root. Вы получаете снимок; Там нет удобного способа получить контент, как он приходит.
Программа ttysnoop позволяет вам наблюдать за трафиком на консоли с другого терминала (включая терминал X). Но это то, что вы должны настроить заранее.
Вместо того, чтобы пытаться перехватить сообщения, когда они выводятся на текстовую консоль, организуйте пересылку сообщений в другое место. Большая часть такого вывода на консоль попадает в системные журналы, в файлы в /var/log
. Под X (то есть в графическом режиме) вы можете перехватывать эти сообщения xconsole
, что является частью стандартного дистрибутива X.
Если xconsole
не отображаются нужные вам сообщения, отредактируйте свой вопрос, чтобы указать, откуда приходят эти сообщения.
Если вам не удается xconsole
показать какое-либо сообщение, отредактируйте свой вопрос, указав в нем свою точную операционную систему, все предпринятые шаги по настройке и любое сообщение об ошибке, которое вы увидели.
Если сообщения поступают не из системного средства ведения журнала, а из программы, которую вы запустили в консоли текстового режима, вы будете лучше перенаправлены . Организовать запуск программы так:
mv ~/.myprogram.log ~/.myprogram.log.old
myprogram --with arguments 2>&1 >~/.myprogram.log
Затем вы можете прочитать вывод программы из любого места, посмотрев в файл ~/.myprogram.log
. В частности, чтобы посмотреть, как файл растет в реальном времени, запустите
tail -n +1 -f ~/.myprogram.log
Если программа запускается вашими скриптами запуска X, лучше перенаправить вывод всей последовательности запуска X в файл. На самом деле многие дистрибутивы делают это автоматически. Если вы используете файл .xinitrc
или .xsession
, поместите следующую строку в начале файла, чтобы перенаправить вывод из последующих программ:
exec >"$HOME/.xsession-$DISPLAY.log" 2>&