CentOS 7では、/var/runはtmpfs(メモリ上に作成されるファイル)になっています。 そのため、OSが起動するたびに初期化されます。 サービスなどで/var/runにディレクトリを作成して使用する場合は、OS起動時に自動作成されるように設定ファイルを用意する必要があります。

設定ファイルの置き場所

OS起動時に、自動的に/var/run/にファイルやディレクトリを作成する場合、/etc/tmpfs.dディレクトリに拡張子.confの設定ファイルを作成します。

/etc/tmpfiles.d/
例 php-fpm用のディレクトリ/var/run/php-fpm を作成するための設定ファイル
/etc/tmpfiles.d/php-fpm.conf

yumでインストールしたサービスなどの設定ファイルは以下に置かれます。

/usr/lib/tmpfiles.d/

設定内容

/etc/tmpfiles.dに置く設定ファイルの中身は、作成するファイルやディレクトリごとに、次のような項目を指定します。

[Type] [Path] [Mode] [User] [Group] [Age] [Argument]
詳細は、man(5) tmpfiles.d にあります。

例 php-fpm用のディレクトリ/var/run/php-fpmを作成する場合

#Type Path        Mode User Group Age Argument
d   php-fpm    0755 root root

参考 yumでインストールしたサービスなどの設定ファイルは以下に置かれます。

/usr/lib/tmpfiles.d/
例 httpd用設定ファイル /usr/lib/tmpfiles.d/httpd.conf の場合
d /run/httpd   710 root apache
d /run/httpd/htcacheclean   700 apache apache

タイプ (Type)

ディレクトリの場合は"d"、ファイルは"f" を指定します。

パス (Path)

/var/run の実態は /run のため、パスは /run/[名前].conf でも指定できます。 /usr/lib/tmpfiles.d/httpd.conf では、/run/[名前].conf になっていました。

アクセス権 (Mode)

指定パスのファイル、ディレクトリのアクセス権を指定します。通常は、"0755"を指定します。

ユーザーとグループ (User, Group)

指定パスのファイル、ディレクトリのユーザーとグループを指定します。

その他 (Age, Argument)

その他、AgeとArgumentの項目がありますが、pidやソケット通信用sockファイルを置くためのディレクトリの場合は、未指定にします。