systemdがステータス行をttyに書き込むのを防ぐ

systemdがステータス行をttyに書き込むのを防ぐ

カーネルとsystemdがブート(サービス)ステータスメッセージをttyに記録しないようにしたいと思います。

Debian Stretch/8 VM の出力例:

Debian Stretch/8 VMの出力例

これシステムマニュアルページロギングを制御できるいくつかのパラメータについて説明します。

  • システムカーネルパラメータsystemd.show_status
  • カーネルカーネルパラメータquiet(システムでも確認)

マニュアルページから:

systemd.show_status=

ブール引数または定数 auto を使用します。その場合、systemd管理者(PID 1)は、起動中にコンソールに簡潔なサービス状態の更新を表示します。 autoは、サービスが失敗するか開始が大幅に遅れるまでfalseのように動作します。 Quietがカーネルコマンドラインオプションに渡されない限り、デフォルトはyesです。この場合、デフォルトは auto です。

(強調します。)

私が強調したものと正反対が私が望むようです。うまくいきませんが。

カーネルパラメータを試しましたが、成功しませんでした。

# the man page was unclear whether false, 0 or no is correct
systemd.show_status=false
systemd.show_status=0
systemd.show_status=no
# the man page says the above config defaults to the value of the kernel parameter "quiet"
quiet
# log "less"
systemd.log_level=err
# explicitly say where to log to
systemd.log_target=journal-or-kmsg
# explicitly say where to log/output to even though the default should be "journal"
systemd.default_standard_output=journal

効果はありません。それでもステータスメッセージが表示されます。

(必死に他のエラー原因を排除するために最後の3つのオプションを追加しました。)

コマンドラインは次のとおりです。

$ cat /proc/cmdline 
... quiet systemd.show_status=false systemd.log_level=err systemd.log_target=journal-or-kmsg systemd.default_standard_output=journal

Systemdのバージョンは232-7で、オペレーティングシステムは2016年後半のRaspbian(Debian 7ベース)で、sytemdを含むいくつかのパッケージがDebian Stretch / 8に部分的にアップグレードされました。

Linux raspberrypi 4.4.38-v7+ #938 SMP Thu Dec 15 15:22:21 GMT 2016 armv7l GNU/Linux

ただし、同じシステムバージョンと1つのオプションを持つ同じ設定を使用する新しいDebian Stretch / 8では、quietロギングはまったく表示されません。新しいシステムにこれを割り当てると、systemd.show_status=yes他のシステムから削除したい動作が正しく発生しました。

  • 最初に述べたカーネルオプションは期待どおりに独自に機能する必要がありますか?
  • コンソールに記録された内容をどのように識別できますか?

ベストアンサー1

おすすめ記事