web-dev-qa-db-ja.com

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

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

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

10
Jay

テキストコンソール/dev/tty1の現在の内容は、ファイル/dev/vcs1で確認できます(1は、 Ctrl+Alt+F1)。 (/dev/tty1から読み取ろうとすると、キーボード入力についてそこで実行されているプログラムと競合します。)通常、vcsデバイスはrootだけが読み取ることができます。スナップショットを取得します。コンテンツを入手するための便利な方法はありません。

ttysnoop プログラムを使用すると、別の端末(X端末を含む)からコンソールのトラフィックを監視できます。しかし、これは事前に設定する必要があるものです。


メッセージがテキストコンソールに出力されたときにメッセージをキャッチしようとするのではなく、メッセージを別の場所に送信するように手配します。このようなコンソール出力のほとんどは、システムログの/var/logの下のファイルに記録されます。 X(つまり、グラフィカルモード)では、これらのメッセージを標準Xディストリビューションの一部であるxconsoleでキャッチできます。

xconsoleに目的のメッセージが表示されない場合は、質問を編集して、これらのメッセージの送信元を記載してください。

xconsoleでメッセージを表示できない場合は、質問を編集して、正確なオペレーティングシステム、実行した構成手順、表示されたエラーメッセージを含めてください。


メッセージがシステムロギング機能からではなく、テキストモードコンソールで開始したプログラムからのものである場合、redirection。次のようにプログラムを開始するように準備します。

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>&

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

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

ディストリビューションが選択した設定によっては、ルートとして起動する必要がある場合があります(つまり、Sudo xconsoleそれぞれsu -c xconsole)、

1
fschmitt

やってみました xterm -C? Ubuntu 17.04で動作します。

1
Erik Bennett