【问题标题】:running Chrome in headless mode在无头模式下运行 Chrome
【发布时间】:2018-08-12 17:09:43
【问题描述】:

为了在无头模式下运行 chrome,我做到了

别名 chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ 铬”

chrome --remote-debugging-port=9222 --disable-gpu --headless

在控制台中,但是,我得到了这个错误,

[0305/140111.481537:ERROR:xattr.cc(64)] setxattr org.chromium.crashpad.database.initialized 文件 /var/folders/m3/92mmh21n0cx4ppf8c3bcns38hd4_kk/T/:操作不 允许 (1) [0305/140111.484254:ERROR:xattr.cc(64)] setxattr org.chromium.crashpad.database.initialized 文件 /var/folders/m3/92mmh21n0cx4ppf8c3bcns38hd4_kk/T/:操作不 允许 (1) [0305/140111.484254:INFO:crashpad_client_mac.cc(292)] 在 0.983 秒内重启处理程序 [0305/140111.513641:ERROR:gpu_process_transport_factory.cc(1009)] 丢失 UI 共享上下文。 [0305/140111.513709:ERROR:instance.cc(49)] 无法 为指标定位服务清单 [0305/140111.513733:ERROR:service_manager.cc(890)] 无法解决 服务名称:指标 [0305/140111.514229:ERROR:socket_posix.cc(142)] bind() 返回错误,errno=48: Address already in use (48)

DevTools 监听 ws://[::1]:9222/devtools/browser/c46563ca-1891-48bd-bdd6-e6122f3f3b5d [0305/140112.484141:错误:xattr.cc(64)] setxattr org.chromium.crashpad.database.initialized 文件 /var/folders/m3/92mmh21n0cx4ppf8c3bcns38hd4_kk/T/:操作不 允许 (1) [0305/140112.484641:INFO:crashpad_client_mac.cc(292)] 在 0.985 秒内重新启动处理程序 [0305/140113.489618:ERROR:xattr.cc(64)] setxattr org.chromium.crashpad.database.initialized 文件 /var/folders/m3/92mmh21n0cx4ppf8c3bcns38hd4_kk/T/:操作不 允许 (1) [0305/140113.490274:INFO:crashpad_client_mac.cc(292)] 在 0.979 秒内重新启动处理程序 [0305/140114.484881:ERROR:xattr.cc(64)] setxattr org.chromium.crashpad.database.initialized 文件 /var/folders/m3/92mmh21n0cx4ppf8c3bcns38hd4_kk/T/:操作不 允许 (1) [0305/140114.485349:INFO:crashpad_client_mac.cc(292)] 在 0.985 秒内重新启动处理程序 [0305/140115.489188:ERROR:xattr.cc(64)] setxattr org.chromium.crashpad.database.initialized 文件 /var/folders/m3/92mmh21n0cx4ppf8c3bcns38hd4_kk/T/:操作不 允许 (1) [0305/140115.489638:INFO:crashpad_client_mac.cc(292)] 在 0.985s 内重启处理程序

我也试过了,

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --disable-gpu --headless

但我遇到了同样的错误。

有什么解决办法吗?

【问题讨论】:

    标签: google-chrome google-chrome-headless


    【解决方案1】:

    更新 3/6
    我在自己的 MacBook 上检查了该解决方案,它确实有效。


    我今天遇到同样的问题,搜索了一些文档后,我怀疑是由于MacOS中的SIP(System Integrity Protection) feature,有这个限制,即使你有root权限也不能修改/var文件夹下的文件.

    所以here 是禁用该功能的方法:

    1. 关闭 Mac(Apple > 关机)。
    2. 按住 Command-R 并按下电源按钮。按住 Command-R 直到出现 Apple 标志。
    3. 等待 OS X 启动到 OS X Utilities 窗口。
    4. 选择实用程序 > 终端。
    5. 输入 csrutil disable。
    6. 输入重新启动。

    【讨论】:

    • 真的不应该禁用系统完整性,这是一个重大的安全风险,将来会给你带来一些严重的问题。
    • 非常个坏主意。
    • 野蛮!如果您使用的是工作计算机,请务必不要这样做。
    【解决方案2】:

    我从Chrome crashpad crashes on xattr得到了答案

    只需在启动 Chrome 时为“崩溃转储”提供不同的目录,如下所示:

    /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --disable-gpu --headless --crash-dumps-dir=/tmp
    

    【讨论】:

    • 为了清楚起见,用这个额外的标志解决了:--crash-dumps-dir=/tmp
    【解决方案3】:

    添加以下命令标志

    --disk-cache-dir=/tmp --user-data-dir=/tmp --crash-dumps-dir=/tmp
    

    例如。

    chrome --headless --disable-gpu --screenshot --disk-cache-dir=/tmp --user-data-dir=/tmp --crash-dumps-dir=/tmp http://m.baidu.com
    

    有关更多命令行标志,请参阅here

    【讨论】:

    • 或者完全禁用崩溃日志?使用 --disable-crash-reporter(通过您的链接找到)
    猜你喜欢
    • 1970-01-01
    • 2023-01-22
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 2019-08-12
    相关资源
    最近更新 更多