/var/run のディレクトリが起動時に消えたり、生成されないのはなぜですか? (セントOS 7.3)

/var/run のディレクトリが起動時に消えたり、生成されないのはなぜですか? (セントOS 7.3)

今日問題が発生しました。/var/run/httpdファイルが欠落しているため、Apacheをロードできません。数多くの狩りの終わりに探すエラーが発生する理由は([Tue Jul 25 00:06:31.574386 2017] [auth_digest:error] [pid 6179] (2)No such file or directory: AH01760: failed to initialize shm - all nonce-count checking, one-time nonces, and MD5-sess algorithm disabled)です。

/var/run/mysqlその後、MariaDBにはディレクトリがなく、PostgreSQLにはディレクトリがないことを確認しました。失われたそのディレクトリ。

システムの起動時に生成されないか、再起動の間に保存されないのですか?

私はしません予想されるこの提案に従って初期化スクリプトを変更する必要があります。質問

編集:ls -dl /var/run&の出力ls -dl /run

lrwxrwxrwx. 1 root root 6 Dec 15  2015 /var/run -> ../run
drwxr-xr-x 25 root root 800 Jul 26 03:40 /run

答え1

{/var,}/run は起動時に systemd によって蒸発します。そんなに低い価値に比べて本当に驚くほど全く予想外の驚きです。

起動後にディレクトリが存在することを確認するには、systemdのtmpfiles部分に何かを関連付ける必要があります。

/usr/lib/tmpfiles.d/httpd.conf
::::::::::::::
d /run/httpd   710 root apache
d /run/httpd/htcacheclean   700 apache apache

/usr/lib/tmpfiles.d/mariadb.conf
::::::::::::::
d /var/run/mariadb 0755 mysql mysql -

そして、tmpfilesエントリが見つからない場合は、自分のパッケージを手動でローリングし、すべての.single.releaseに対してパッケージを調整、テスト、およびアップグレードします。これがスケールやSLAに関するすべてのものに一般的に悪いアイデアであることに同意する限り、それも良いです。

答え2

これらの設定ファイルは /usr/lib/tmpfiles.d および /etc/tmpfiles.d/ にあります。

起動時に自動的にインストール/実行するには、systemd-tmpfiles-setup.serviceをブロック解除して有効にする必要があります。 systemctl unmask systemd-tmpfiles-setup.service systemctl enable systemd-tmpfiles-setup.service

答え3

修正ではなく修正です。

他のSEサイト、フォーラム、ニュースグループなどを検索した後、これがローカルおよびリモートファイルシステムのマウント順序に関連しているかどうか疑問に思います。 (このサーバーには一対のCIFS共有がマウントされており、それぞれサブディレクトリがあります。)バインディング)が別の場所にインストールされています)。

CIFS共有を上にスライドさせ、/etc/fstabすべてのバインドマウントを一番下に移動しました。

その後、再起動します。

/runakaは/var/run期待どおりに動作しています。

私はいません。知る編集は/etc/fstab重要です。しかし、私が知っている限り、編集は唯一の実質的な変更です。

答え4

/var/run は一時的な一時ディレクトリと見なされます。

tmpfiles.d次のディレクトリを含む揮発性ファイルと一時ファイルの作成、削除、およびクリーンアップを構成するために使用されます。/var/run

/etc/tmpfiles.dのファイルは、と同じ名前のファイルを上書きします。のファイルは、このロジックを使用してベンダーパッケージにインストールされている構成ファイルをオーバーライドできるローカル管理者用に予約されています。源泉:/usr/lib/tmpfiles.d/run/tmpfiles.d/etc/tmpfiles.d
https://www.systutorials.com/docs/linux/man/5-tmpfiles.d/

cat既存の構成/usr/lib/tmpfiles.dls -l /var/run権限を使用して、適切な権限を決定できます。

新しいファイルを作成する[name]か、例に基づいていますhttpd/etc/tmpfiles.d/usr/lib/tmpfiles.d/screen

httpd

# httpd  needs directory in /run  
d /run/httpd 0775 root apache

一般的な

# [name] needs directory in /run  
d /run/[name] [perms] [user] [group]

関連情報