Перегляд повідомлень системної консолі в графічному інтерфейсі


10

У Linux, чи можна переглядати повідомлення про помилки, які відображаються на терміналі текстового режиму, перебуваючи в режимі GUI, замість того, щоб натискати Ctrl+ Alt+ F1або Ctrl+ Alt+, F2щоб переглядати повідомлення кожного разу, а потім переходити в режим GUI, натискаючи 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, як правило, читаються лише коренем. Ви отримуєте знімок; Немає зручного способу отримання контенту під час його надходження.

Програма 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? як, наприклад, у моїй ситуації .. Я написав сценарій пітона для випадкового зміни шпалер. І я налаштував це так, що коли я запускаю X, скрипт викликається. Але сценарій працює не так, як мені хочеться, і я отримую кілька повідомлень про помилки на консолі. Коли я запускаю xconsole після потрапляння в X, я бачу лише повідомлення, які надсилаються на консоль з цього моменту. Сторінка man для xconsole нічого не говорить про перегляд повідомлень, які вже є на консолі
Jay

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

dmesg показує лише повідомлення, які з’являються під час завантаження. Я не думаю, що в ньому відображаються повідомлення, які з’являються на консолі після завантаження і входу в систему, а також "startx", наприклад ..
Jay

1

Ви пробували xterm -C? Він працює на Ubuntu 17.04.


1
Це звучить гідно для коментарів, але якщо Ерік додасть якийсь контекст, це здається правдоподібною / можливою відповіддю: "-C Ця опція вказує, що це вікно має отримувати консольний вихід. Це підтримується не у всіх системах. ..."
Jeff Schaller

Справедливі очки. Наступного разу я зроблю це коментарем. Вибачте за будь-які вигоди.
Ерік Беннетт

-4

Якщо ви хочете переглянути консольні повідомлення, ви можете поставити їх в кінці /etc/rc.local,

sleep 60

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