DigiLoog

PC関係の事なら何でもいけるそんな処

systemdユニットファイルのパラメータ上書き

2024年12月21日(土) - 23:29 | カテゴリ: Linux

ns-lab BBのメールサーバではマルウェア対策でamavisとclamavを利用しており、
postfixからプロセス間通信でメールをリアルタイムで投げ込む様にしていたりする。
先日メールサーバをメンテナンスしていた所、
プロセス間通信の箇所が上手く動かずデータをロストしている事がわかった。

調べてみたら、プロセス間通信用のソケットファイルがsystemdでパス強制化されており、
本来の設定が上手く反映されておらずデータ損失をしていた。
amavisやclamavの設定を変更する事も考えたが他サーバとも構成を統一したかったので、
強制上書きされたファイルの保存先を書き換えてみた。

実施した事は簡単で、”systemctl edit example”でsystemdユニットファイルを上書きするのみ。
記載する内容にコツがあり、正規のユニットファイルで保存されたデータを一度初期化してから、
上書き内容を追記する必要があった。

例えば、ListenStream・SocketUser・SocketGroupを変更する場合、
“systemctl edit example”で実行した後に次の内容を追記する必要がある。
以下サンプルはソケットの設定だが、systemdユニットファイルでも同様の事が出来る模様。

[Socket]
ListenStream=
SocketUser=
SocketGroup=
ListenStream=/var/run/example/service.sock
SocketUser=exauser
SocketGroup=exagroup

最初に設定を初期化をしないと、変更前のユニットファイルで設定した内容に追記する形となる。
コレに気づくまでに丸一日を溶かしてしまった… (´・ω・`)
挙動についてArch Linuxのコミュニティーにも記載があるので詳細は以下の内容も読んで欲しい。





  • 応援中

    D.C.5 Sweet Happiness ~ダ・カーポ5~スイートハピネス 2025年3月28日(金)発売予定 予約受付中
    バカップル・サプリメント