
核心错误:
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/walle/codebase/'程序执行 os.listdir('/tmp/walle/codebase/')的时候,这个目录不存在,抛出异常。
排查步骤
确认目录是否存在
ls -ld /tmp/walle/codebase/大概率会提示 No such file or directory。
手动创建缺失目录
mkdir -p /tmp/walle/codebase
-p参数:父目录不存在时自动创建,不会报错。
检查目录权限(walle 程序运行用户需要读写权限)
chmod 755 /tmp/walle/codebase
# 如果程序用普通用户运行,可修改属主,示例:
# chown -R 你的运行用户:你的用户组 /tmp/walle重启 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