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. 为用户指定默认会话
- 确保您通过运行以下命令安装了 gnome-session-xsession 软件包:
#
yum install gnome-session-xsession
- 导航到
/usr/share/xsessions
目录,您可以在其中找到每个可用会话的.desktop
文件。查阅.desktop
文件的内容以确定您要使用的会话。 - 要为用户指定默认会话,请在
/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. 创建自定义会话
要使用自定义配置创建自己的会话,请按照以下步骤操作:
- 在
/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)手册页。 - 在
/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. 查看用户会话日志
- 运行以下命令,确定您的用户 ID (
uid
):$
id --user
1000 - 查看上面确定的用户 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. 为所有用户添加自动启动(启动)应用程序
- 在
/etc/xdg/autostart/
目录中创建一个.desktop
文件:[Desktop Entry] Type=Application Name=Files Exec=nautilus -n OnlyShowIn=GNOME; AutostartCondition=GSettings org.gnome.desktop.background show-desktop-icons
- 使用应用程序的名称替换 Files。
- 使用您要用来运行应用程序的命令替换 nautilus -n。
- 您可以使用
AutostartCondition
键来检查 GSettings 键的值。如果键的值为 true,则会话管理器会自动运行应用程序。如果键值在运行的会话中发生了更改,会话管理器将启动或停止应用程序,具体取决于键之前的值是多少。
14.3.6. 配置自动登录
具有 Administrator 帐户类型的用户可以从 GNOME 中的 面板中启用 Automatic Login。系统管理员也可以在
GDM
自定义配置文件中手动设置自动登录,如下所示:
例 14.1. 为用户 john 配置自动登录
编辑
/etc/gdm/custom.conf
文件,并确保文件中的 [daemon]
部分指定了以下内容:
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=john
使用您要自动登录的用户替换 john。
14.3.7. 配置自动退出登录
闲置一段时间的用户会话可以自动终止。您可以通过设置相应的 GSettings 键,根据机器是否通过电池运行还是通过主电源运行来设置不同的行为,然后锁定它。
警告
请记住,如果闲置会话被自动终止,用户可能会丢失未保存的数据。
过程 14.8. 为由电源供电的机器设置自动退出登录
- 在
/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
' - 覆盖用户的设置,并阻止用户在
/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
- 更新系统数据库:
#
dconf update
- 在系统范围的设置生效前,用户必须退出并重新登录。
下面的 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. 启用屏保和锁定屏幕
- 在
/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=uint32180
您必须包含uint32
以及整数键值,如上所示。 - 覆盖用户的设置,并阻止用户在
/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
- 更新系统数据库:
#
dconf update
- 在系统范围的设置生效前,用户必须退出并重新登录。
14.3.10. 录屏
GNOME Shell 具有内置屏幕广播记录器,允许用户在会话期间记录桌面或应用程序活动,并以
webm
格式将录制作为高分辨率视频文件分发。
过程 14.10. 进行录屏
- 要启动录制,请按 Ctrl+Alt+Shift+R。当记录器捕获屏幕活动时,它会在屏幕的右上角显示一个红色圆圈。
- 要停止录制,请按 Ctrl+Alt+Shift+R。屏幕右下角的红色圆就消失了。
- 导航到
~/Videos
文件夹,您可以在其中找到记录的视频,其文件名以Screencast
开头,并包括录制的日期和时间。
请注意,内置的记录器总是捕获整个屏幕,包括多监视器设置中的所有监视器。