h2oをインストールするansibleのタスクを書いた。ついでにh2oの実行ユーザーをh2oユーザーにしてみた(デフォルトはnobody)。しかし、h2oの起動に失敗する。
ログ見ると/var/run/h2oディレクトリへ書き込みできなくて起動失敗している。
* h2oインストール時(?)に/var/run/h2oが作成される(nobody:nobodyで)
* h2o起動直後h2oユーザーで/var/run/h2o以下にpidファイルを作成しようとするが、オーナーがnobodyなので作成失敗→起動失敗
という流れ。
予めディレクトリを作成するタスク書けば良いと思ったけど微妙感が…。h2oの起動スクリプトをいじるのも、h2oアップデート時元に戻されそうだしダメそう。
そこで何かいい方法がないか探した所、systemdにsystemd-tmpfilesというものがあった!
これはその名の通り、systemdのテンポラリなファイルを管理できる。/etc/tmpfiles.d/h2o.confのように、/etc/tmpfiles.d以下に定義ファイルを置く。