タグ付けされたエントリー
1 件の検索結果
-
0
systemctl edit (drop-in snippet) を使う時は、"systemctl show" で確認すべし
サーバーに複数のIPアドレスを割り当てている場合に、明示的にListenIPアドレスを指定したい場合がある。例えば、postfixで、
inet_interfaces = 127.0.0.1, 192.168.1.1
等を設定した場合、OS再起動するとpostfixが起動に失敗するケースに遭遇する。ネットワークインターフェースがLinkUpする前に、postfixが起動してしまい、指定したIPアドレスの25/TCPポートを割当出来ない状態だ。
対応方法としては、systemdのユニットファイルを編集するのが一般的であろう。今回はpostfix.service を例として、"systemctl edit postfix.service"でユニットファイルを編集する場合について。
"systemctl edit postfix.service"で
[Unit]After=network-online.target
として保存すれば、今回の要件は完了する。
だがデフォルトでは、After=syslog.target network.targetとなっていて、syslog使ってないし、network-online.target があれば、(他のサービスで立ち上がるはずなので)"network.target" 不要じゃないか!と思った時、つまりは、デフォルトで記述されている場合を削除したい場合だ。
結論から言えば、著者は、"systemctl --full edit postfix.service"でしか対応しきれなかった。--full オプションは、すべての設定項目を記述する。保存先は、/etc/systemd/system/postfix.service となる。
[Service] セクションであれば、例えば、ExecStartPre=ExecStartPre=hogehogeと書けば、1行目のExecStartPre行でクリアされ、2行目の1行のみとなる。
同様の事を[Unit] セクションで行ったが、[Unit]After=After=network-online.targetとしても"network-online.target"が追記されるだけで、"syslog.target"も"network.target"も存在する。
だいぶん話が脱線してしまったが、これらの調査を行った際に利用したコマンドが、
〇 編集する場合
・ ...