排行榜

walle瓦力部署平台解决"/tmp/walle/codebase/"不存在的坑

本文阅读 2 分钟
首页 › 运维中心 › 正文
广告

image.png


核心错误:

FileNotFoundError: [Errno 2] No such file or directory: '/tmp/walle/codebase/'

程序执行 os.listdir('/tmp/walle/codebase/')的时候,这个目录不存在,抛出异常。

排查步骤

  1. 确认目录是否存在

ls -ld /tmp/walle/codebase/

大概率会提示 No such file or directory。

  1. 手动创建缺失目录

mkdir -p /tmp/walle/codebase


-p 参数:父目录不存在时自动创建,不会报错。

  1. 检查目录权限(walle 程序运行用户需要读写权限)

chmod 755 /tmp/walle/codebase
# 如果程序用普通用户运行,可修改属主,示例:
# chown -R 你的运行用户:你的用户组 /tmp/walle


  1. 重启 walle 服务

sh admin.sh start


额外原因说明

  • Walle(瓦力部署系统)在项目代码拉取、存放临时代码包时,会用到 /tmp/walle/codebase目录;

  • 服务器重启、tmp 自动清理机制(tmpfs或者 systemd-tmpfiles)会把 /tmp下目录清空,导致目录丢失,是很常见的坑。

根治方案(防止重启后目录再次消失)

创建 systemd-tmpfiles 规则,开机自动保留该目录:

vi /etc/tmpfiles.d/walle.conf


写入:

d /tmp/walle/codebase 0755 root root -


生效:

systemd-tmpfiles --create /etc/tmpfiles.d/walle.conf


执行完后再启动服务看日志,确认不再报这个文件不存在错误。


本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.unfit.cn/archives/208.html
本地服务器接ups,实现断电优雅关机,来电自启
« 上一篇 05-15
广告