systemd を使用してログディレクトリ (/var/log/**) を自動生成する方法
公開:
更新:
systemd のサービス設定には RuntimeDirectory
という、/run
以下にプログラム実行用のディレクトリを自動的に作成してくれる素晴らしい項目があります。
これの /var/log
版はないものかと思っていたところ、LogsDirectory
というドンピシャなものが存在しました。私と同じことを思っていた方もいるかもしれませんし、インターネット上であまり情報が転がってなかったので、今回はこれを紹介します。
Service セクションの LogsDirectory
という項目を使うことで、サービスが実行される際に自動的に /var/log
以下にログディレクトリを作成してくれます1。RuntimeDirectory
が /run
を含まずにディレクトリ名を指定するのと同じように、LogsDirectory
も /var/log
を含まないパスを指定すれば良いです2。
[Service]
LogsDirectory=your-service-name
これでシステム構築時に、先に手動でディレクトリを作るという手順を踏まなくて済みます。