CentOS 7では、/var/runはtmpfs(メモリ上に作成されるファイル)になっています。 そのため、OSが起動するたびに初期化されます。 サービスなどで/var/runにディレクトリを作成して使用する場合は、OS起動時に自動作成されるように設定ファイルを用意する必要があります。
設定ファイルの置き場所
OS起動時に、自動的に/var/run/にファイルやディレクトリを作成する場合、/etc/tmpfs.dディレクトリに拡張子.confの設定ファイルを作成します。
/etc/tmpfiles.d/
/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/
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ファイルを置くためのディレクトリの場合は、未指定にします。