Debianはデフォルトでquiet
カーネルコマンドラインを使用します(少なくとも私が使用したライブメディアからインストールするときは、おそらく悪い考えでしょう)。
quiet
systemd は、各サービスの起動時に標準メッセージを印刷せずに応答します。
それでは、シャットダウン時にシステムステータスメッセージが表示されるのはなぜですか?
これはDebian Stretchにあります。
答え1
man systemd
systemd.show_status
ブールパラメータまたは定数を使用します
auto
。パラメータなしで指定することもできます。これは正のブール値と同じ効果を持ちます。有効にすると、systemd管理者(PID 1)は、起動中にコンソールに簡潔なサービス状態の更新を表示します。auto
デバイスにエラーが発生するか、起動時にかなりの遅延が発生するまで、動作はfalseに似ています。 Quietがカーネルコマンドラインオプションに渡されない限り、デフォルトは有効です。この場合、デフォルト値はですauto
。
systemdはこのオプションにもかかわらず、デバイスが失敗したときにステータスメッセージを有効にしますquiet
。
このquiet
オプションが渡されたがそのような条件のためにオーバーライドされた場合、システムの起動が完了するとステータスメッセージは再び無効になります(緊急モードにのみ入っても)。
現時点では、systemd は初期開始および終了中にのみステータスメッセージを出力します。ただし、quiet
シャットダウンが開始される前にデバイスエラーが発生しても、デバイスエラーのため、シャットダウン中にこのオプションを上書きできます。
上書きされる2番目のケースquiet
は、デバイスに時間がかかる場合です。 systemd は、タイムアウト前にデバイスが許可されている時間を示すアニメーションを印刷します。
ソースコードを見てくださいmanager_flip_auto_status(m, true)
。
- https://github.com/systemd/systemd/blob/41dfa61d35c51a584437481d20541d5c3ccfa93d/src/core/manager.c#L200
- https://github.com/systemd/systemd/blob/41dfa61d35c51a584437481d20541d5c3ccfa93d/src/core/job.c#L734
持ついいえmanager_flip_auto_status(m, false)
システムがシャットダウンすると呼び出されます。少なくともsystemd v235-135-g41dfa61d3にはありません。
たとえば、現在のsystemd-backlightはAsusデスクトップでラップトップのバックライトを設定しようとしましたが、失敗したため起動時にステータスメッセージが表示されます。 (プラットフォームドライバに何か奇妙なことがあるかもしれません。システムはデバイスなしで起動を完了しましたが、システムが/sys/class/backlight
起動中にデバイスを見つけたようです)
答え2
systemd
記録作業をするからです。 "quiet"を検索すると、man systemd
カーネルオプションがシャットダウンではなく起動にのみ影響することがわかります。