以前にUbuntu 12.04 LTSで実行していたWebアプリケーションを移行しています。 /dev/shm/
を広範囲に使用します。 Ubuntu 16.04 LTSサーバーの/dev/shm/
からアプリケーションデータが消えていることがわかりました。
そこからファイルとディレクトリを削除しているガベージコレクションがありますか? 12.04には、シンボリックリンク/dev/shm -> /run/shm
が設定されていますが、16.04にはまったく逆の/run/shm -> /dev/shm
が設定されています。しかし、それがどのような違いをもたらすかはわかりません。
更新
何時間も検索して読んだ後、私は犯人を見つけました。 systemd
の設定です。 /etc/systemd/logind.conf
にはデフォルトの構成オプションが含まれており、それぞれがコメント化されています。 RemoveIPC
オプションは、デフォルトでyes
に設定されています。このオプションは、systemd
に、ログインしていない「ユーザーアカウント」のプロセス間通信(IPC)をクリーンアップするよう指示します。これは、「システムアカウント」には影響しません。
私の場合、ファイルとディレクトリはシステムアカウントではなくユーザーアカウント用に作成されていました。
次の2つの解決策があります。
adduser -r
またはadduser --system
)で作成されたユーザー/etc/systemd/logind.conf
を編集し、_RemoveIPC=yes
行のコメントを解除し、RemoveIPC=no
に変更し、システムを保存して再起動します私の場合、ユーザーはすでに作成されているため、オプション#2を使用しました。
参照: