systemdのシャットダウン順序を予測するにはどうすればよいですか?


9

システム全体を正常にシャットダウンしたときにサービスをシャットダウンsystemdする大まかな順序を教えてもらう方法はありますか?以来systemd、並列でダウン物事を停止します、私は正確な順序を知る方法はありません感謝し、まだ制約が知っていることは非常に参考になるsystemd、好ましくは、理解しやすい視覚化のいくつかの種類には、シャットダウンシーケンスに課すます。

動機は、サービスファイルの開発とデバッグの場合、実際にシャットダウンしてから再起動してログを調べてから判断するたびに行うよりも、この予測リストを事前に取得しておく方がはるかに便利であることです。サービスユニットファイルの変更やsystemdの構成の他の側面に影響するものは、シャットダウンの順序です。

私はそのようなものを望んでいた

systemctl list-dependencies --before shutdown.service

仕事をしますが、それは放出するだけです:

shutdown.service

回答:


2

以下はあなたを助けるかもしれません:

systemctl list-dependencies --before shutdown.target

よろしく、


3
まあ、それはだというのが私の愚かな間違いを指摘して感謝しshutdown.targetていませんshutdown.service。ただし、これでもリクエストした順序付けされたリストは表示されませんが、代わりに非常に短いリスト、または一部のシステムでは空のリストが表示されます。
Adam

残念ながら、Systemdはわざと不透明です。オールドスクールのsysvinitスタイルの場合、おそらくスタートアップファイルにログを追加し、開始されたプロセスをタイムスタンプ付きのファイルに登録することができます。
シェビー2017

1
@AdamSpiers @Mohamed Salhi基本的に、「前」は「前に開始」を意味します。これは、必要なコマンドがsystemctl list-dependencies --after shutdown.target...であることを意味します。少なくとも、最初のコマンドでは検出されないものはすべて見つかります。もshutdown.target開始しているので混乱していますが、他のすべてのユニットはを停止しています。この場合、「前」または「後」の順序であるかどうかは関係ありません。どちらの場合も、停止は開始前に行われます。
sourcejedi

1

シャットダウンの順序は通常、起動の順序の逆です。

つまり、デーモンにはすべてシャットダウン信号が送信され、実際にシャットダウンして終了するまでにさまざまな時間がかかります。

単純なsystemdに移行すると、どのサービスがどのシーケンスで終了するかを効果的に予測することは現実的ではないと思います。さらに、依存関係はいくつかのシーケンスを制御します。


1
正しい-並列化により、私はそれを認識していました。ただし、正確な順序は必要ありません。どの順序が適用され、どのものが並列で実行される可能性があるかだけです。これを明確にするために質問を更新します。また、「通常」の資格はありますか?それは逆ではないでしょうか?
Adam Spiers 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.