GUIでのシステムコンソールメッセージの表示


10

Linuxでは、Ctrl+ Alt+ F1またはCtrl+ Alt+ F2を押すたびにメッセージを表示し、その後Ctrl+ Alt+を押してGUIモードに切り替える代わりに、GUIモードでテキストモード端末に表示されるエラーメッセージを表示できますか?F7

ありがとうございました。


質問の主題を明確にしました。Bashは、Linuxのさまざまなシェルの1つにすぎません。メッセージは、シェル自体ではなく、bashが実行されているエンティティに送信されます。
fschmitt 2010年

/ var / log / "blah"にアクセスして、それぞれのログを読むことはできませんか?ブートプロセス上にあると仮定すると、
var / log / boot.logを

回答:


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"を実行しましたが、うまくいきました。あなたが言ったように、それはコンソール上のメッセージの簡単なスナップショットでしたが、私が必要なのはそれだけでした。
ジェイ

@ジェイ:私はあなたのコメントを見たので、別の答えがあります。つまり、X起動スクリプトでリダイレクトを使用する必要があります。他の可能性は、質問のアーカイブを閲覧している他の人々に役立つ可能性があるため、残しておきます。
Gilles「SO-悪をやめ

1

これにはxconsoleを使用できます。その説明から:

xconsoleプログラムは、通常/ dev / consoleに送信されるメッセージを表示します。

ディストリビューションが選択した構成に応じて、ルートとして(つまり、sudo xconsoleそれぞれを使用してsu -c xconsole)起動する必要がある場合があります。


ありがとうございました。しかし、Xを起動した後、すでにコンソールにあるメッセージを表示する方法はありますか?たとえば、私の状況では。壁紙をランダムに変更するpythonスクリプトを作成しました。Xを起動するたびにスクリプトが呼び出されるように設定しました。しかし、スクリプトが希望どおりに機能せず、コンソールにいくつかのエラーメッセージが表示されます。Xに入ってからxconsoleを起動すると、その時点からコンソールに送信されたメッセージしか表示されません。xconsoleのmanページには、すでにコンソールにあるメッセージの表示について何も書かれていません
Jay

任意のターミナルウィンドウ(xtermなど)で、コマンドdmesgを使用して、起動時に出力されたメッセージを表示できます。
fschmitt

dmesgは、起動時に表示されるメッセージのみを表示します。私は..私が起動した後は、コンソールに表示されるメッセージが表示されていることを考えると、ログインして例えば「startxを」を実行していない
ジェイ

1

試しましたxterm -Cか?Ubuntu 17.04で動作します。


1
コメントに値するように聞こえますが、Erikが何らかのコンテキストを追加する場合、それはもっともらしい/可能性のある答えのようです: "-Cこのオプションは、このウィンドウがコンソール出力を受け取ることを示します。これはすべてのシステムでサポートされているわけではありません。..."
ジェフシャラー

フェアポイント。次回はコメントにします。不便をおかけして申し訳ありません。
エリックベネット

-4

コンソールメッセージを表示したい場合は、/ etc / rc.localの最後に置くことができます。

sleep 60

2
OPは、GUIをロードしたにメッセージを表示したいと考えています。これは、システムがロードする前に1分間待機するだけなので、解決策ではありません。
terdon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.