

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在控制台会话中使用 Xdcv
<a name="xdcv-console-sessions"></a>

Amazon DCV 提供两种类型的会话：主机会话和虚拟会话。

通过**虚拟会话**，Amazon DCV 会启动一个专用 X 服务器实例 Xdcv，并在其中运行桌面环境。Amazon DCV 为每个虚拟会话启动一个新的 Xdcv 实例，并且每个虚拟会话都使用自己的 X 服务器实例提供的显示屏。Xdcv 二进制文件由软件包提供。`nice-xdcv`

通过**控制台会话**，Amazon DCV 可以直接捕获桌面屏幕的内容，在 Linux 上，桌面屏幕通常由系统的 X 服务器 (Xorg) 呈现。也可以将控制台会话配置为由 Xdcv 代替 Xorg 提供服务。这提供了动态调整大小和多显示器，而无需在中配置细节。`xorg.conf`

本主题介绍如何在 Ubuntu、 RHEL/Rocky Linux/CentOS Stream 和 Amazon Linux 2023 上进行切换。

**重要**  
此配置仅适用于非 GPU 主机。在带有 GPU 的实例上应用这些步骤将破坏 GPU-accelerated 显示管道。

**注意**  
这些说明假设您的系统使用 GDM（GNOME 显示管理器）。如果您使用其他显示管理器，例如 Lightdm 或 SDDM，请相应地调整命令。`systemctl restart`

**Topics**
+ [先决条件](#xdcv-console-prereqs)
+ [Ubuntu](#xdcv-console-ubuntu)
+ [RHEL /Rocky Linux /CentOS Stream](#xdcv-console-rhel)
+ [Amazon Linux 2023](#xdcv-console-al2023)
+ [验证配置](#xdcv-console-verify)
+ [正在恢复](#xdcv-console-revert)

## 先决条件
<a name="xdcv-console-prereqs"></a>

在为您的发行版运行命令之前，请确认以下内容：
+ `nice-xdcv`软件包已安装，`Xdcv-console`二进制文件位于`/usr/bin/Xdcv-console`。
+ 您拥有 root 权限（`sudo`在适当的情况下使用）。

**注意**  
配置完成后，下次登录控制台时将启动会 Xdcv-backed 话，而不是标准的 Xorg 会话。

## Ubuntu
<a name="xdcv-console-ubuntu"></a>

在Ubuntu上，切换是通过将原始的Xorg二进制文件转移到外面并通过符号链接指向`/usr/bin/Xorg`来执行的。`Xdcv-console`

```
$ dpkg-divert --package nice-xdcv --divert /usr/bin/Xorg.orig --rename /usr/bin/Xorg
$ ln -sf /usr/bin/Xdcv-console /usr/bin/Xorg
$ sudo systemctl restart gdm
```每条命令的用途

`dpkg-divert`  
告诉 dpkg 该`nice-xdcv`软件包拥有该路径，`/usr/bin/Xorg`并将现有的 Xorg 二进制文件重命名为。`/usr/bin/Xorg.orig`这样可以保留原始二进制文件，并防止 future Xorg 包升级覆盖您的自定义。

`ln -sf`  
创建或替换符号链接，以便任何正在调用的进程都能`/usr/bin/Xorg`实际运行`/usr/bin/Xdcv-console`。

`systemctl restart gdm`  
重新启动 GNOME 显示管理器，使更改生效。这会终止主机上的任何活动图形会话，因此请在没有人登录控制台时运行它。

## RHEL /Rocky Linux /CentOS Stream
<a name="xdcv-console-rhel"></a>

在 RHEL-family 发行版中，该`nice-xdcv`软件包提供了两个以声明方式处理开关的 systemd 单元。

```
$ systemctl enable --now xdcv-console-update.service
$ systemctl enable xdcv-console.path
$ sudo systemctl restart gdm
```每条命令的用途

`xdcv-console-update.service`  
协调系统以用于控制台会话`Xdcv-console`的单元。使用启用它会立即将其`--now`激活，并使其在后续启动时启动。

`xdcv-console.path`  
一种基于路径的单元，它会监视磁盘上的相关文件，并在软件包升级后 X 服务器配置发生更改时重新触发更新服务。启用它可确保自动重新应用 Xdcv 配置，而不是静默恢复。

`systemctl restart gdm`  
重新启动 GNOME 显示管理器，使更改生效。这会终止主机上的任何活动图形会话，因此请在没有人登录控制台时运行它。

## Amazon Linux 2023
<a name="xdcv-console-al2023"></a>

亚马逊 Linux 2023 使用该`update-alternatives`系统来管理提供哪些二进制文件`/usr/bin/X`。

```
$ update-alternatives --install /usr/bin/X xdcv /usr/bin/Xdcv-console 11
$ sudo update-alternatives --set X /usr/bin/Xdcv-console
$ sudo systemctl restart gdm
```每条命令的用途

`update-alternatives --install`  
登记`Xdcv-console`为`X`备选方案的候选人，优先级为11。只有当备选方案处于自动模式时，优先级才重要；下一个命令会覆盖该模式。

`update-alternatives --set X`  
`Xdcv-console`显式固定`X`到，因此以后不会被优先级较高的候选人所取代。

`systemctl restart gdm`  
重新启动 GNOME 显示管理器，使更改生效。这会终止主机上的任何活动图形会话，因此请在没有人登录控制台时运行它。

## 验证配置
<a name="xdcv-console-verify"></a>

应用分发步骤后，确认 X 服务器路径现在解析为`Xdcv-console`：

```
$ ls -l /usr/bin/Xorg       # Ubuntu
$ ls -lh /usr/bin/X         # RHEL/Rocky Linux/CentOS Stream
$ ls -l /etc/alternatives/X # Amazon Linux 2023
```

然后启动控制台会话并检查它是否按预期启动。如果显示管理器无法启动，请先通过 SSH 登录进行故障排除，然后再尝试其他图形登录。

## 正在恢复
<a name="xdcv-console-revert"></a>

如果你需要恢复到普通的 X 服务器，请执行以下操作：
+ **Ubuntu：**删除符号链接，然后运行恢复原始二`dpkg-divert --package nice-xdcv --rename --remove /usr/bin/Xorg`进制文件。
+ **RHEL/Rocky:** `systemctl disable --now xdcv-console.path xdcv-console-update.service`.
+ **亚马逊 Linux 2023:**`update-alternatives --remove X /usr/bin/Xdcv-console`，然后重启 gdm。