Просмотр сообщений системной консоли в графическом интерфейсе


10

В Linux можно просматривать сообщения об ошибках, которые отображаются в терминале текстового режима в режиме графического интерфейса пользователя, вместо необходимости нажимать Ctrl+ Alt+ F1или Ctrl+ Alt+ F2для просмотра сообщений каждый раз, а затем переключаться обратно в режим графического интерфейса, нажимая Ctrl+ Alt+ F7?

Спасибо.


Я уточнил предмет вопроса. Bash - это только одна из множества различных оболочек для Linux. Сообщения отправляются объекту, в котором (например) работает bash, а не самой оболочке.
fschmitt

Разве вы не можете просто зайти в / var / log / "blah" и прочитать соответствующий журнал? Предполагая, что он находится в процессе загрузки, вы можете посмотреть на /var/log/boot.log
vfbsilva

Ответы:


6

Вы можете увидеть текущее содержимое текстовой консоли /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>&

Спасибо. Я просто сделал su -c "cat / dev / vcs1", и это сработало. И, как вы упомянули, это был простой снимок сообщений на консоли, но это было все, что мне было нужно.
Джей

@Jay: теперь, когда я увидел ваши комментарии, у меня есть другой ответ, который заключается в том, что вы должны использовать перенаправление в своих скриптах запуска X. Я оставляю другие возможности, потому что они могут быть полезны для других людей, просматривающих архив вопросов.
Жиль "ТАК - перестань быть злым"

1

Вы можете использовать xconsole для этого. Из его описания:

Программа xconsole отображает сообщения, которые обычно отправляются в / dev / console.

В зависимости от конфигурации, которую выбрал ваш дистрибутив, вам может потребоваться запустить его как root (то есть с sudo xconsoleсоответственно su -c xconsole),


Спасибо. Но есть ли способ просмотреть сообщения, которые уже есть на консоли после того, как я запустил X? как, например, в моей ситуации .. Я написал скрипт на Python для случайной смены обоев. И я настроил его так, чтобы при запуске X вызывался скрипт. Но скрипт не работает так, как я хочу, и я получаю несколько сообщений об ошибках на консоли. Когда я запускаю xconsole после входа в X, я вижу только те сообщения, которые отправляются на консоль с этого момента. Страница man для xconsole ничего не говорит о просмотре сообщений, которые уже есть на консоли
Jay

Вы можете в любом окне терминала (например, xterm) отобразить сообщения, напечатанные во время загрузки, с помощью команды dmesg.
fschmitt

dmesg показывает только те сообщения, которые появляются во время загрузки. Я не думаю, что это показывает сообщения, которые появляются на консоли после того, как я загружаюсь и регистрируюсь и делаю "startx", например ..
Jay

1

Ты пробовал xterm -C? Работает на Ubuntu 17.04.


1
Это звучит достойно комментариев, но если Эрик добавил бы некоторый контекст, то это выглядит правдоподобным / возможным ответом: «-C Эта опция указывает, что это окно должно получать консольный вывод. Это поддерживается не во всех системах. ....»
Джефф Шаллер

Ярмарка очков. В следующий раз я сделаю комментарий. Извините за любые неудобства.
Эрик Беннетт

-4

Если вы хотите видеть сообщения консоли, вы можете поместить в конец /etc/rc.local,

sleep 60

2
ОП хочет видеть сообщения после загрузки графического интерфейса. Это просто заставит систему подождать минуту перед загрузкой, поэтому это не решение проблемы.
Terdon
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.