從零開始

Linux 中 /var/run 文件/目录重启被删除 如何解决?

Linux 中(比如 CentOS),/var/run 指向 /run 目录,一般是 tmpfs 内存挂载点,操作系统重启,这个目录下所有文件/目录会被删除。(貌似 CentOS 7 下 /var/run 目录下的目录,系统重启不会丢失)

如果程序需要将临时数据放到这个目录下,该怎么解决?总不能每次重启收工创建目录吧?

「Linux 中 /var/run 文件/目录重启被删除 如何解决?:https://ostarted.com/1」

比如 nginx fastcgi cache,缓存目录:/var/run/nginx-cache,CentOS 7 下直接 mkdir -p /var/run/nginx-cache 就完事了。

但是 Debian 和 CentOS 8 还启动时自动重新创建才行,否则要手工。

怎么自动创建?

「Linux 中 /var/run 文件/目录重启被删除 如何解决?:https://ostarted.com/1」

Linux 启动时会检查 /etc/tmpfiles.d、/run/tmpfiles.d 或 /usr/lib/tmpfiles.d 下配置文件,自动创建响应的目录或文件。我们可以利用这个机制,将需要创建的目录或文件写到 tmpfiles.d/ 中:

创建自定义配置文件,如:nginx-cache.conf

vi /usr/lib/tmpfiles.d/nginx-cache.conf

编辑内容并保存:

「Linux 中 /var/run 文件/目录重启被删除 如何解决?:https://ostarted.com/1」
d /var/run/nginx-cache 0755 www www
# 类型 路径 权限 所有者 组
# d 代表目录, f 代表文件, L 代表链接

这样,系统启动时会自动创建 /var/run/nginx-cache 目录,权限 drwxr-xr-x,用户/组是 www

「Linux 中 /var/run 文件/目录重启被删除 如何解决?:https://ostarted.com/1」
退出移动版