Jenkins运行Selenium遇SessionNotCreatedException:设备路径空间不足
Jenkins运行Selenium报错:No space left on device的解决方法
错误日志
org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Error while creating session with the driver service. Stopping driver service: Could not start a new session. Response code 500. Message: No space left on device (os error 28) at path "/tmp/rust_mozprofileO0WZJN" Build info: version: '4.3.0', revision: 'a4995e2c09*' System info: host: 'pic-01-vm-nubo11picmolecule02-01-selenium.novalocal', ip: '172.18.0.39', os.name: 'Linux', os.arch: 'amd64', os.version: '5.14.0-284.18.1.el9_2.x86_64', java.version: '17.0.8'
错误原因
核心问题是Jenkins所在服务器的**/tmp目录磁盘空间耗尽**,Selenium启动Firefox浏览器时需要在/tmp下创建临时配置文件(如日志中的rust_mozprofileO0WZJN目录),空间不足导致会话创建失败。
解决步骤
检查磁盘空间
执行命令查看全部分区空间使用情况:df -h查看/tmp目录的具体占用:
du -sh /tmp确认/tmp所在分区是否已被占满。
清理临时文件
Linux系统默认会定期清理/tmp,但可手动清理旧文件释放空间:# 删除1天前的/tmp文件 find /tmp -type f -mtime +1 -delete注意:清理前确认无正在使用的重要临时文件,避免影响其他进程。
更换Selenium临时文件目录
如果/tmp所在分区空间有限,可指定Selenium使用其他有足够空间的目录:- Java代码中设置系统属性:
// 替换为你有足够空间的目录路径 System.setProperty("java.io.tmpdir", "/opt/selenium-tmp"); FirefoxOptions options = new FirefoxOptions(); WebDriver driver = new FirefoxDriver(options); - 或在Jenkins构建环境中添加环境变量
TMPDIR,值为目标目录路径。
- Java代码中设置系统属性:
优化Jenkins磁盘占用
- 清理Jenkins旧构建记录和工作空间,在Jenkins项目配置中设置构建保留策略,自动删除过期构建。
- 检查Jenkins的日志目录是否过大,定期清理日志文件。
内容的提问来源于stack exchange,提问作者Faiez Kharrat
相关产品推荐
相关产品推荐

