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

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),

fschmitt
источник
Спасибо. Но есть ли способ просмотреть сообщения, которые уже есть на консоли после того, как я запустил 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