以下の現象は、Arch Linux でも Ubuntu Artful でも再現できるため、 の詳細を取得できていないと結論付けましたsystemd
。
Docker デーモンがサービスとして起動された後に実行されるコマンドを追加したいだけですsystemd
。
エディターを呼び出しsystemctl edit docker.service
、評価手段として次のように入力します。
[Service]
ExecStartPost=true
現在、その内容のファイルが存在するため、確認のために/etc/systemd/system/docker.service.d/override.conf
呼び出します。systemctl daemon-reload
ここで、解析されたユニットを表示すると、予想していたとおり、出力にディレクティブは表示されません。A はsystemctl show docker.service
何も生成しません。ExecStartPost
systemd-analyze verify
では、ExecStartPost
オーバーライド ファイルの が によってユニットの一部と見なされないのはなぜでしょうかsystemd
?
オーバーライドディレクティブを含むファイルが実際に評価されるかどうかをテストするために、次のコンテンツを試しました。
[Service]
ExecStart=
ExecStart=foo
驚いたことに、ExecStart
の出力にディレクティブが表示されなくなりましたsystemctl show docker.service
。
この場合、最初の指令は考慮されるのに、2 番目の指令は考慮されないのはなぜか、誰か説明してもらえますか?
答え1
私の間違いは、次のようにコマンドへの絶対パスを指定しなかったことのようです。
[Service]
ExecStartPost=/bin/true