lxc 和 google chrome 无法打开显示

lxc 和 google chrome 无法打开显示

我正在尝试从 lxc 容器运行 Google Chrome,但尽管我多次尝试并进行各种调整,但仍然失败。

ERROR:browser_main_loop.cc(271)] Gtk: cannot open display: :0.0

这是我的脚本

#!/bin/sh
CONTAINER=xenial-gui
CMD_LINE="google-chrome --disable-setuid-sandbox --user-data-dir $*"

STARTED=false

if ! lxc-wait -n $CONTAINER -s RUNNING -t 0; then
    lxc-start -n $CONTAINER -d
    lxc-wait -n $CONTAINER -s RUNNING
    STARTED=true
fi

PULSE_SOCKET=/home/ubuntu/.pulse_socket

lxc-attach --clear-env -n $CONTAINER -- sudo -u ubuntu -i \
    env DISPLAY=$DISPLAY PULSE_SERVER=$PULSE_SOCKET $CMD_LINE

if [ "$STARTED" = "true" ]; then
    lxc-stop -n $CONTAINER -t 10
fi

答案1

对我来说,当xhost local:*以 root 身份或使用执行时,它可以工作sudo。此命令允许本地用户访问屏幕。我需要发出此命令,因为我在登录桌面时以不同的用户身份运行非特权容器。

如果你正在运行非特权容器,你甚至可以使用 进一步限制这一点xhost local:username。另请参阅man xhost

当我开始实验时,我意外地启用了此功能,并在重新启动机器后感到疑惑了一段时间。

相关内容