You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除服务器tmp目录后Puppeteer启动Chromium失败求助

问题:删除服务器tmp目录后,Puppeteer启动Chromium生成PDF失败

此前在服务器上使用Puppeteer生成PDF证书与发票运行正常,删除tmp目录后出现浏览器进程启动失败错误,具体错误信息如下:

Error Failed to launch the browser process!
2023/04/05 08:23:05.127967 cmd_run.go:1055: WARNING: cannot start document portal: dial unix /run/user/0/bus: connect: no such file or directory
mkdir: cannot create directory ‘/run/user/0’: Permission denied
/snap/chromium/2406/snap/command-chain/desktop-launch: line 369: cannot create temp file for here-document: No such file or directory
[0405/082307.461560:ERROR:address_tracker_linux.cc(189)] Could not create NETLINK socket: Operation not permitted (1)
[0405/082307.543446:WARNING:dns_config_service.cc(144)] Failed to read DnsHosts.
[0405/082307.546564:ERROR:platform_shared_memory_region_posix.cc(214)] Creating shared memory in /tmp/.org.chromium.Chromium.Wvasql failed: No such file or directory (2)

相关代码:

browser = await Puppeteer.launch({
    executablePath: "/snap/bin/chromium",
    args: ["--no-sandbox"],
});

已重新安装Puppeteer和Chromium,问题仍未解决。


问题原因

  1. /tmp目录被删除后未自动重建,导致Chromium无法创建临时文件、共享内存文件等必要资源。
  2. /run/user/0目录缺失或权限不足:该目录是systemd为root用户会话生成的临时目录,缺失会破坏Chromium启动脚本的执行逻辑。
  3. Snap版本的Chromium对系统临时目录的权限依赖较强,目录结构异常或权限错误直接触发启动失败。

解决方法

  • 重建并修复/tmp目录权限
    执行命令重建tmp目录并设置粘滞位权限,确保所有用户可读写且无法删除他人文件:

    sudo mkdir -p /tmp
    sudo chmod 1777 /tmp
    
  • 修复/run/user/0目录问题
    可手动创建目录并设置权限,或重启systemd服务让系统自动生成:

    # 手动创建并配置权限
    sudo mkdir -p /run/user/0
    sudo chmod 700 /run/user/0
    # 重启systemd-logind服务,由系统自动管理用户会话目录
    sudo systemctl restart systemd-logind
    
  • 指定自定义临时目录给Chromium
    在Puppeteer启动参数中添加自定义临时目录配置,需确保目录已存在且权限正确:

    browser = await Puppeteer.launch({
        executablePath: "/snap/bin/chromium",
        args: [
            "--no-sandbox",
            "--user-data-dir=/opt/chromium-tmp",
            "--disk-cache-dir=/opt/chromium-tmp"
        ],
    });
    

    先创建自定义目录并配置权限:

    sudo mkdir -p /opt/chromium-tmp
    sudo chown your-user:your-group /opt/chromium-tmp # 替换为运行程序的用户组
    sudo chmod 755 /opt/chromium-tmp
    
  • 重新配置Snap版Chromium
    移除并重新安装Snap版Chromium,确保权限配置正确:

    sudo snap remove chromium
    sudo snap install chromium
    # 若需访问外部存储目录,可添加对应权限
    sudo snap connect chromium:removable-media
    

内容的提问来源于stack exchange,提问作者Hkm Sadek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:02:32