開始シーケンスが終了したときに飛んでいるメッセージをどのように一時停止(またはキャプチャ)できますか?

開始シーケンスが終了したときに飛んでいるメッセージをどのように一時停止(またはキャプチャ)できますか?

「Boot Sequence」1の終わりに、ログインプロンプト2が表示される直前に一連の長い診断メッセージがすばやく通過することがわかります。

AFAICT、すべてではありませんが、ほとんどのこの一時出力を構成する行は、以下の文字列で始まります。

[  OK  ]
[FAILED]

...OK緑、3はFAILED赤です。

メッセージが短すぎて点滅して読み取れませんでした。

私の質問は次のとおりです

これらのメッセージを読みやすくする方法はありますか?


心に浮かぶ可能な解決策は次のとおりです(好み順)。

  1. このメッセージを送信する(または単にリダイレクト)文字通り4いくつかの永続ログファイル。
  2. ページングメカニズムを有効にする(Press any key to continue...)。
  3. このメッセージを印刷したら、一時停止(設定可能な長さ)を挿入します。
  4. 特定のキー(またはキーの組み合わせ)を有効にして画面出力を一時停止します5。

編集:これまでに受けたコメントに基づいて、次の結論を下す必要があります。文字通り上記(1)の内容は、可能な限り強調しようとしたにもかかわらず、理解されていないか、真剣に受け入れられない。可能であればフラッシュにします...


編集2:提案まあコメントで提供された内容は私に有望に見えますが、まだ機能していません。これが私がしたことです:

まず、最後に以下を追加しました/etc/rsyslog.conf

# Save boot messages also to boot.log
local7.* /var/log/boot.log

...そして再起動してください。一般的な診断メッセージが表示されますが、/var/log/boot.logファイルは生成されません。

次に、イベントに書き込むためにイベントが/var/log/boot.log既に存在する必要がある場合(確かに可能性は低いですが)、rootとして次を実行します。rsyslog

touch /var/log/boot.log
chgrp adm /var/log/boot.log
chmod 640 /var/log/boot.log

...ここで、chgrpANDchmodコマンドの目的は、所有権と権限を/var/log/boot.logその下にある他のすべてのログファイルのものと一致させることです/var/log。その後、再起動してメッセージなどを見ました。/var/log/boot.log再起動後もファイルは空です。

/var/log/boot.log(権限をに変更しても同じ結果は出ません666。)

私の問題と関連があると思われる項目を見つけるために、以下のgrep出力journalctl --bootとファイルを編集しましたが、何も見つかりませんでした。 (まったく慣れていないため、検索が非常に不可能であったことを確信しています。)/var/logrsyslogrsyslog

これまでに私が行ったことは、必要なロギングを有効にするのに十分ではなかったようです。私は今私が逃したものを探しています。しかし、まだこれに関する多くの文書が見つかりませんでした。例えば、それが何であるかを説明したり、謙虚ではなかったrsyslog.conf(5)(少なくとも追加の情報を提供せずに一度言及するのに十分丁寧に)。rsyslogd(8)local7rsyslog.conf(5)


編集3

リリース情報:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.3 (jessie)
Release:    8.3
Codename:   jessie
$ uname -a
Linux myhost 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux

編集4

関連する可能性があるその他の情報:

$ cat /lib/systemd/system/rsyslog.service
[Unit]
Description=System Logging Service
Requires=syslog.socket
Documentation=man:rsyslogd(8)
Documentation=http://www.rsyslog.com/doc/

[Service]
Type=notify
ExecStart=/usr/sbin/rsyslogd -n
StandardOutput=null
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=syslog.service
$ cat /proc/$(pgrep rsyslogd)/limits
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             128529               128529               processes 
Max open files            1024                 4096                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       128529               128529               signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us        

$ sudo ls /proc/$(pgrep rsyslogd)/fd | wc -l
10

1は私のコンピュータを(再び)起動したときに起こるものです。

2、 FWIWはmulti-user.target私のデフォルトです。

3残りのテキストは黒の背景に白です。後続のログインプロンプトでも同様です。

4私は見つけたまったく受け入れられない起動プロセス中に表示されるこれらのメッセージの正確なテキストを表示できないソリューションです。私はいつもこれらの診断メッセージが何を意味するのかよくわからないので、元のメッセージが伝える基本情報を解釈し、他の多くのメッセージに伝播し、他のメッセージに含まれるすべての方法を識別することは不可能です。など(オンライン検索のみ可能)正確な表現元のメッセージの内容の問題に対する解決策を見つけることができますか? )元のメッセージを含め、これまで試してみましたがjournalctl -b失敗したすべてdmesg文字通り。たとえば、スタートアップを実行すると赤色しか表示されませんが、FAILEDjournalctl --boot | grep FAILED | wc -l返されます。このうち私が探しているものはありません。0journalctl --boot | grep -i FAILED | wc -l1086

5私のシステムでは、これらのキーまたはキーの組み合わせを1秒未満押し続けても、この短い間隔がいつ始まるかについての事前警告はありません。これらのキーストロークが発生する間隔を設定できない場合は、キー押下ベースのソリューションは実用的ではないため、最後の手段としてのみ使用してください。また、FWIW、メッセージが点滅している間、またはキーを押してみましたが、違いはありませんでした。Scroll
Lock
Pause/
Break

ベストアンサー1

カーネルコマンドライン引数(と同様console=tty0 console=ttyS0,115200n8)を設定してシリアルコンソールに送信することができ、シリアルポートでリッスンするデバイスは単にテキストストリームであるため、簡単に記録できます。

systemdがこの内容を記録しない場合は、愚かになります。 Openrcは/var/log/rc.logでこれを行います。また、systemdでない場合は、tty1にgetty / Xorgを入れずに何も防止するようにinittabを変更できます(たとえば、openSUSE以前にsystemdが行ったように)。それとも別のttyにコピーしてください(これを行うのはinittabではなくsyslogのようです...そして多くのLinuxインストーラがtty9 +でこれを行うのを見ることができます)。もう一度切り替えると、後ろにスクロールしません(shift + pgup)。ただし、1ページの出力がある可能性があります。おそらくsystemdについてもっと知っている人はinittabに対応する新機能を知っているので、それを変更できます。

おすすめ記事