[自分用メモ][systemd] systemd serviceのEnvironmentFileは上書きされない?

2018-11-30 11:16:41AIX、UNIX、Linuxdrop-in, Environment, linux, override, serivce, service, systemd

20181129111859c22

systemd serviceを使用して気が付いたのですが、systemd serviceファイルをオーバーライドする方法としてdrop-inという仕組みがあります。

/etc/systemd/system/unit.d/override.conf のような形でファイルを用意する必要があるのですが、その中で[Service]セクションにあったEnvironmentFileという変数についてです。

というのも、とあるパッケージをインストールするとデフォルトで用意されるsystemd serviceファイルの中にEnvironmentFileを指定する箇所があるのですが、これが/path/to/fileと記述されていて、適宜修正する形になっていたのです。
これをある環境に一括でばらまこうとしたときに、drop-inの形でファイルを用意して、EnvironmentFileを用意して、設定自体を上書こうかと思ったのですが、実行してみると以下のような結果に。

Nov 29 00:02:33 dns05 systemd[1]: irqbalance.service: Failed to load environment files: No such file or directory
Nov 29 00:02:33 dns05 systemd[1]: irqbalance.service: Failed to run 'start' task: No such file or directory
Nov 29 00:02:33 dns05 systemd[1]: irqbalance.service: Failed with result 'resources'.
Nov 29 00:02:33 dns05 systemd[1]: Failed to start irqbalance daemon.

Failed to load environment files: No such file or directoryとなり、該当するEnvironmentFileの読み込みに失敗した、というメッセージが出力されます。
なんでかなーと思って一応調査してみました。



が、EnvironmentFileのオーバーライドに関する記述は見つけられませんでした。

今のところ自分なりには以下のように対応するしかなさそうな感じです。

POINT

– 元のsystemd serviceファイルのEnvironmentFileを”-“付きに修正する(読み込み失敗の無視)
– 元のsystemd serviceファイルのEnvironmentFileをコメント扱いにする

この辺りについて、もっとスマートな方法があるようでしたらご教示ください。

この記事を書いた人

kometchtech

うつ病を患いながら、IT業界の末席にいるおっさんエンジニア。科学計算をしたことがないのに、HPC分野にお邪魔している。

興味のある分野で学習したことをblogにまとめつつ、うつ病の経過症状のメモも置いておく日々。

じつはRouterboard User Group JPの中の人でもある。

Amazon欲しいものリスト / Arm板を恵んでくれる人募集中

2018-11-30 11:16:41AIX、UNIX、Linuxdrop-in, Environment, linux, override, serivce, service, systemd