我正在尝试从 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
对我来说,它在
xhost local:*
以 root 身份或使用sudo
. 此命令允许本地用户访问屏幕。我需要发出这个问题,因为当我登录到我的桌面时,我正在以不同的用户身份运行非特权容器。如果您正在运行非特权容器,您甚至可以使用
xhost local:username
. 另请参阅man xhost
。当我开始进行实验时,我不小心启用了此功能,并在重新启动机器后想了一会儿。