systemd-journal-flushサービスを無効にし、後でJournalctl --flushを手動で実行できますか?

systemd-journal-flushサービスを無効にし、後でJournalctl --flushを手動で実行できますか?

私のArchlinuxインストールでは、systemd-journal-flushサービスを介してジャーナルログをディスクにフラッシュすると、ブートプロセスがかなり長くなり、サービスを無効にするとブート時間が短縮される可能性があることに気づきました。サービスを永久にブロックし、コンピュータがjournalctl --flushアイドル状態のときにそれを実行してログをディスクにフラッシュできますか?これは望ましくないシステム動作を引き起こしますか?

答え1

この問題を解決する手順は次のとおりです。

  1. フラッシングを行うjournalctl --flush
  2. ディレクトリの削除/移動/var/log/journal
  3. 設定Storage=autoする/etc/systemd/journald.conf
  4. マシンを再起動してください

開始時間が改善されることがわかります。

答え2

他の人は、永続ログなしでロギングを実行することがオプションだと指摘しました。このメソッドは特別な注意なしに記録されます。そして複数のシステムで使用されます。 Fedoraは永続ログとsyslogデーモンなしで起動され、Debianはまだ基本的にこのアプローチを使用しています。

したがって、問題を期待する理由はありません。

必要に応じて元のサービスをマスクし、フラッシュを後で実行するようにスケジュールできます。

後で起動中に奇妙なシステムクラッシュが発生した場合は、それを再度有効にして(そしてSyncIntervalSec=Journald.confでより低い値を設定して)、関連するログメッセージを回復してみてください。

答え3

/etc/systemd/journald.confディスクがある場合は、Storage=autoディスクに書き込むように設定できます。/var/log/journalディレクトリを作成しないでください。

その後、アイドル状態のときにコマンドを実行するメソッドを使用してログディスクをフラッシュできます。

sudo mkdir /var/log/journal && journalctl --flush

関連情報