Ubuntu 18.04下memcached启动失败:命名空间挂载错误求助
解决Ubuntu 18.04 Memcached启动失败(私有临时目录挂载错误)
临时修复方案
- 手动创建缺失的私有临时目录并配置权限:
执行完后重启服务:sudo mkdir -p /var/tmp/systemd-private-*-memcached.service-*/tmp sudo chown memcache:memcache /var/tmp/systemd-private-*-memcached.service-*/tmp sudo chmod 700 /var/tmp/systemd-private-*-memcached.service-*/tmp
如果通配符匹配不到具体目录,直接从systemd调试日志里复制完整路径替换后再创建。sudo systemctl restart memcached
永久修复方案
方法1:禁用私有临时目录
- 编辑memcached的systemd服务配置:
sudo systemctl edit memcached.service - 在打开的临时文件中添加以下内容:
[Service] PrivateTmp=no - 保存退出后,重载systemd配置并重启服务:
sudo systemctl daemon-reload sudo systemctl restart memcached
方法2:手动指定私有临时目录
如果希望保留私有Tmp的隔离特性,可以手动指定一个存在的目录:
- 先创建目录并设置权限:
sudo mkdir -p /var/tmp/memcached-private-tmp sudo chown memcache:memcache /var/tmp/memcached-private-tmp sudo chmod 700 /var/tmp/memcached-private-tmp - 编辑服务配置:
sudo systemctl edit memcached.service - 添加配置:
[Service] PrivateTmp=/var/tmp/memcached-private-tmp - 重载配置并重启服务:
sudo systemctl daemon-reload sudo systemctl restart memcached
命名空间挂载异常的原因
- systemd版本bug:Ubuntu 18.04搭载的systemd版本在处理
PrivateTmp=true配置时,存在首次启动无法自动创建对应私有临时目录的问题,导致挂载操作失败。 - 文件系统限制:/var/tmp目录可能被设置了
noexec、nodev等特殊挂载属性,或者所在文件系统不支持私有挂载点的创建,阻碍了systemd的目录生成操作。 - 安装过程异常:全新安装memcached时,若依赖包缺失、安装中断,会导致systemd服务文件的初始化逻辑未正常执行,私有目录的自动创建流程未触发。
内容的提问来源于stack exchange,提问作者Bogdan Velcea
相关产品推荐
相关产品推荐

