删除服务器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,问题仍未解决。
问题原因
/tmp目录被删除后未自动重建,导致Chromium无法创建临时文件、共享内存文件等必要资源。/run/user/0目录缺失或权限不足:该目录是systemd为root用户会话生成的临时目录,缺失会破坏Chromium启动脚本的执行逻辑。- 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
相关产品推荐
相关产品推荐

