Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

14.3. 用户会话

14.3.1. 用户会话中典型的进程是什么?

在普通的 GNOME 会话中,称为 守护进程 的程序作为后台进程在系统上运行。您应该能够找到以下默认运行的守护进程:
dbus-daemon
dbus-daemon 提供了一个消息总线守护进程,程序可以使用它来交换消息。dbus-daemon 使用 D-Bus 库实现,它在两个应用程序之间提供一对一通信。
有关进一步的信息,请参阅 dbus-daemon(1) man page。
gnome-keyring-daemon
不同程序和 Web 站点的用户名和密码等凭证使用 gnome-keyring-daemon 安全地存储。此信息被写入到名为 keyring 文件的加密文件中,保存在用户的主目录下。
有关进一步的信息,请参阅 gnome-keyring-daemon(1) man page。
gnome-session
gnome-session 程序负责使用显示管理器(如 GDM )运行 GNOME 桌面环境。用户的默认会话是系统管理员在系统安装时设置的。gnome-session 通常加载系统上成功运行的最后一个会话。
有关进一步的信息,请参阅 gnome-session(1) man page。
gnome-settings-daemon
gnome-settings-daemon 处理 GNOME 会话的设置,以及会话内运行的所有程序。
有关进一步的信息,请参阅 gnome-settings-daemon(1) man page。
gnome-shell
gnome-shell 为 GNOME 提供核心用户界面功能,如启动程序、浏览目录、查看文件等。
有关进一步的信息,请参阅 gnome-shell(1)手册页。
pulseaudio
pulseaudio 是 Red Hat Enterprise Linux 的一个声音服务器,可让程序使用 Pulseaudio 守护进程输出音频。
有关进一步的信息,请参阅 pulseaudio(1) man page。
根据用户的设置,您可能还会看到以下一些内容:
  • dconf-service
  • ibus
  • at-spi2-dbus-launcher
  • at-spi2-registryd
  • gnome-shell-calendar-server
  • goa-daemon
  • gsd-printer
  • 各种 Evolution 工厂进程
  • 各种 GVFS 进程

14.3.2. 配置用户默认会话

默认会话是从名为 AccountsService 的程序检索的。AccountsService 将此信息存储在 /var/lib/AccountsService/users/ 目录中。
注意
在 GNOME 2 中,用户主目录中的 .dmrc 文件用于创建默认会话。不再使用这个 .dmrc 文件。

过程 14.5. 为用户指定默认会话

  1. 确保您通过运行以下命令安装了 gnome-session-xsession 软件包:
    # yum install gnome-session-xsession
  2. 导航到 /usr/share/xsessions 目录,您可以在其中找到每个可用会话的 .desktop 文件。查阅 .desktop 文件的内容以确定您要使用的会话。
  3. 要为用户指定默认会话,请在 /var/lib/AccountsService/users/username 文件中更新 用户的帐户服务
    [User]
    Language=
    XSession=gnome
    在这个示例中,使用 /usr/share/xsessions/gnome.desktop 文件将 GNOME 设置为默认会话。请注意,Red Hat Enterprise Linux 7 中的系统默认是 GNOME 经典( /usr/share/xsessions/gnome-classic.desktop 文件)。
为用户指定默认会话后,该会话将在下次登录时使用,除非用户从登录屏幕选择了不同的会话。

14.3.3. 创建自定义会话

要使用自定义配置创建自己的会话,请按照以下步骤操作:
  1. /etc/X11/sessions/new-session .desktop 中创建一个 .desktop 文件。确保文件指定了以下条目:
    [Desktop Entry]
    Encoding=UTF-8
    Type=Application
    Name=Custom Session
    Comment=This is our custom session
    Exec=gnome-session --session=new-session
    Exec 条目指定要执行的命令(可能带有参数)。您可以使用 gnome-session --session=new-session 命令运行自定义会话。
    有关您可以在 gnome-session 中使用的参数的更多信息,请参阅 gnome-session (1)手册页。
  2. /usr/share/gnome-session/sessions/new-session.session 中创建一个自定义会话文件,您可以在其中指定会话的名称和所需组件:
    [GNOME Session]
    Name=Custom Session
    RequiredComponents=gnome-shell-classic;gnome-settings-daemon;
    请注意,您在 RequiredComponents 中指定的任何项目都需要在 /usr/share/applications/ 中具有对应的 .desktop 文件。
配置自定义会话文件后,GDM 登录屏幕的会话列表中将提供新会话。

14.3.4. 查看用户会话日志

如果要查找用户会话中问题的更多信息,您可以查看 systemd 日志。因为 Red Hat Enterprise Linux 7 是一个基于 systemd的系统,所以用户会话日志数据以二进制格式直接存储在 systemd 日志中。
注意
在 Red Hat Enterprise Linux 6 中,用户会话日志数据存储在 ~/.xsession-errors 文件中,该文件已不再使用。

过程 14.6. 查看用户会话日志

  1. 运行以下命令,确定您的用户 ID (uid):
    $ id --user
    1000
  2. 查看上面确定的用户 ID 的日志:
    $ journalctl _UID=1000

获取更多信息

journalctl(1) man page 提供了有关 systemd 日志使用情况的更多信息。
有关在 Red Hat Enterprise Linux 7 中使用 systemd 日志的详情,请查看 Red Hat Enterprise Linux 7 系统级身份验证指南。

14.3.5. 为所有用户添加自动启动应用程序

要在用户登录时自动启动应用程序,您需要在 /etc/xdg/autostart/ 目录中为该应用程序创建一个 .desktop 文件。
要为单个用户管理自动启动(启动)应用程序,请使用 gnome-session-properties 应用程序。

过程 14.7. 为所有用户添加自动启动(启动)应用程序

  1. /etc/xdg/autostart/ 目录中创建一个 .desktop 文件:
    [Desktop Entry]
    Type=Application
    Name=Files
    Exec=nautilus -n
    OnlyShowIn=GNOME;
    AutostartCondition=GSettings org.gnome.desktop.background show-desktop-icons
  2. 使用应用程序的名称替换 Files
  3. 使用您要用来运行应用程序的命令替换 nautilus -n
  4. 您可以使用 AutostartCondition 键来检查 GSettings 键的值。
    如果键的值为 true,则会话管理器会自动运行应用程序。如果键值在运行的会话中发生了更改,会话管理器将启动或停止应用程序,具体取决于键之前的值是多少。

14.3.6. 配置自动登录

具有 Administrator 帐户类型的用户可以从 GNOME Settings 中的 Users 面板中启用 Automatic Login。系统管理员也可以在 GDM 自定义配置文件中手动设置自动登录,如下所示:

例 14.1. 为用户 john 配置自动登录

编辑 /etc/gdm/custom.conf 文件,并确保文件中的 [daemon] 部分指定了以下内容:
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=john
使用您要自动登录的用户替换 john

14.3.7. 配置自动退出登录

闲置一段时间的用户会话可以自动终止。您可以通过设置相应的 GSettings 键,根据机器是否通过电池运行还是通过主电源运行来设置不同的行为,然后锁定它。
警告
请记住,如果闲置会话被自动终止,用户可能会丢失未保存的数据。

过程 14.8. 为由电源供电的机器设置自动退出登录

  1. /etc/dconf/db/local.d/00-autologout 中为机器范围的设置创建一个 local 数据库:
    [org/gnome/settings-daemon/plugins/power]
    # Set the timeout to 900 seconds when on mains power
    sleep-inactive-ac-timeout=900
    # Set action after timeout to be logout when on mains power
    sleep-inactive-ac-type='logout'
  2. 覆盖用户的设置,并阻止用户在 /etc/dconf/db/local.d/locks/autologout 中更改它:
    # Lock automatic logout settings
    /org/gnome/settings-daemon/plugins/power/sleep-inactive-ac-timeout
    /org/gnome/settings-daemon/plugins/power/sleep-inactive-ac-type
    
  3. 更新系统数据库:
    # dconf update
  4. 在系统范围的设置生效前,用户必须退出并重新登录。
下面的 GSettings 键值得关注的:
  • org.gnome.settings-daemon.plugins.power.sleep-inactive-ac-timeout
    如果计算机是通过 AC 电源运行的,则它在休眠前需要处于非活动状态的秒数。
  • org.gnome.settings-daemon.plugins.power.sleep-inactive-ac-type
    如果计算机通过 AC 电源运行,则超时时会发生什么。
  • org.gnome.settings-daemon.plugins.power.sleep-inactive-battery-timeout
    如果计算机通过电源运行,它在休眠前需要处于非活动状态的秒数。
  • org.gnome.settings-daemon.plugins.power.sleep-inactive-battery-type
    如果计算机通过电池运行,超时时会发生什么。
您可以在键上运行 gsettings range 命令,以获取您可以使用的值的列表。例如:
$ gsettings range org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type
enum
'blank'
'suspend'
'shutdown'
'hibernate'
'interactive'
'nothing'
'logout'

14.3.8. 设置屏幕亮度和空闲时间

通过设置以下 GSettings 键,您可以设置亮度级的下降,并设置亮度级别和闲置时间。

例 14.2. 设置亮度级的下降

要在设备闲置一段时间后设置亮度级别的下降,请在 /etc/dconf/db/local.d/00-power 中为机器范围的设置创建一个 local 数据库,如下例所示:
[org/gnome/settings-daemon/plugins/power]
idle-dim=true

例 14.3. 设置亮度级

要更改亮度级别,请在 /etc/dconf/db/local.d/00-power 中为机器范围的设置创建一个 local 数据库,如下例所示,并将 30 替换为您要使用的整数值:
[org/gnome/settings-daemon/plugins/power]
idle-brightness=30

例 14.4. 设置空闲时间

要设置屏幕显示的空闲时间,且显示默认屏保,请在 /etc/dconf/db/local.d/00-session 中为机器范围的设置创建一个 local 数据库,如下例所示,并将 900 替换为您要使用的整数值:
[org/gnome/desktop/session]
idle-delay=uint32 900
您必须包含 uint32 以及整数值,如上所示。
以 root 用户身份运行 dconf update 命令,将您的更改合并到系统数据库中。
在系统范围的设置生效前,用户必须退出并重新登录。
注意
您也可以锁定上述设置以防止用户更改它们。有关锁的详情,请参考 第 9.5.1 节 “锁定特定设置”

14.3.9. 当用户空闲时锁定屏幕

如果要启用屏保,并在用户闲置时自动锁定屏幕,您需要创建一个 dconf 配置文件,设置 GSettings 键对,然后将其锁定以防止用户编辑它。

过程 14.9. 启用屏保和锁定屏幕

  1. /etc/dconf/db/local.d/00-screensaver 中为系统范围的设置创建一个 local 数据库:
    [org/gnome/desktop/session]
    # Set the lock time out to 180 seconds before the session is considered idle
    idle-delay=uint32 180
    [org/gnome/desktop/screensaver]
    # Set this to true to lock the screen when the screensaver activates
    lock-enabled=true
    # Set the lock timeout to 180 seconds after the screensaver has been activated
    lock-delay=uint32 180
    您必须包含 uint32 以及整数键值,如上所示。
  2. 覆盖用户的设置,并阻止用户在 /etc/dconf/db/local.d/locks/screensaver 文件中更改它:
    # Lock desktop screensaver settings
    /org/gnome/desktop/session/idle-delay
    /org/gnome/desktop/screensaver/lock-enabled
    /org/gnome/desktop/screensaver/lock-delay
    
  3. 更新系统数据库:
    # dconf update
  4. 在系统范围的设置生效前,用户必须退出并重新登录。

14.3.10. 录屏

GNOME Shell 具有内置屏幕广播记录器,允许用户在会话期间记录桌面或应用程序活动,并以 webm 格式将录制作为高分辨率视频文件分发。

过程 14.10. 进行录屏

  1. 要启动录制,请按 Ctrl+Alt+Shift+R
    当记录器捕获屏幕活动时,它会在屏幕的右上角显示一个红色圆圈。
  2. 要停止录制,请按 Ctrl+Alt+Shift+R。屏幕右下角的红色圆就消失了。
  3. 导航到 ~/Videos 文件夹,您可以在其中找到记录的视频,其文件名以 Screencast 开头,并包括录制的日期和时间。
请注意,内置的记录器总是捕获整个屏幕,包括多监视器设置中的所有监视器。