dtsession 命令

用途

管理 CDE 会话。

语法

dtsession [选项] ...

描述

dtsession 命令在用户会话期间提供符合 ICCCM 1.1的会话管理功能,从登录到注销。 它会启动窗口管理器,并允许用户保存会话、复原会话、锁定会话、启动屏幕保护程序,以及为兼容桌面的客户机分配颜色。

注: 桌面登录管理器 dtlogin 通过 Xsession 脚本自动调用 dtsession 客户机。 还可以通过现有 X 服务器上的 Xsession 脚本来启动 dtsession 客户机。 dtsession 会话管理器会自动启动窗口管理器。
dtsession 命令支持以下任务:
  • 初始化会话
  • 启动窗口管理器
  • 恢复主会话或当前会话
  • 对命令或超时提供会话锁定
  • 对命令或超时提供会话屏幕保护程序
  • 充当其他桌面客户机的颜色分配服务器
  • 保存主会话或当前会话
  • 注销时显示确认对话
  • 注销时显示会话选择对话
  • 终止会话

会话

会话是显示在用户桌面上的应用程序、设置和资源的集合。 会话管理是一组约定和协议,允许特殊会话管理器 (例如 dtsession) 保存和复原用户会话。 用户可登录到系统,并将看到与用户注销时所见相同的运行中的应用程序、设置和资源的集合。 当用户首次登录到桌面时,将装入缺省初始会话。 之后, dtsession 支持当前会话和主会话的概念。

定义了以下会话:
初始会话
当用户首次登录桌面时, dtsession 将使用系统缺省值生成用户的初始会话。 有关更多信息,请参阅 会话资源管理会话应用程序管理
当前会话
始终将正在运行的用户会话视为当前会话,无论该会话是登录时从保存的主会话、从保存的当前会话,还是从系统缺省初始会话复原的。 根据用户的“样式管理器启动”设置,当用户退出会话时,当前会话将自动保存。 当用户下一次登录到桌面时,先前保存的当前会话将重新启动。 桌面恢复为用户上次注销时的相同状态。
主会话
这是另一种选项,不管用户注销时桌面是什么状态,该选项在用户每次登录时会将桌面恢复为同一状态。 用户可保存当前会话的状态,然后设置“样式管理器启动”,以使桌面在每次用户登录时启动该会话。
特定于显示的会话
要为特定显示运行特定会话,用户可创建特定于显示的会话。 为此,用户可以将 $HOME/.dt/sessions 目录复制到 $HOME/.dt/display,其中 display 是真实的非限定主机名 (例如, pablo:0 有效,但 pablo.gato.com:0local:0 无效)。 当用户在显示 pablo:0 上登录时,该特定于显示的会话将优先。

ICCCM 会话管理协议

对于要在注销时保存并在登录时重新启动的应用程序,它必须使用简单会话管理协议。 dtsession 命令支持 ICCCM 1.1 会话管理协议。

需要保存其状态的应用程序可使用 WM_SAVE_YOURSELF 协议。 为此,应用程序需要仅在它的其中一个顶级窗口上设置 WM_SAVE_YOURSELF 属性。 保存会话时, dtsession 会向应用程序的顶级窗口发送WM_SAVE_自己客户机消息。 应用程序会继续静默保存其状态。 在应用程序保存其状态时,它无法以任何方式与用户交互。 由于应用程序可能将其状态保存到文件中,因此会话管理器提供了便利功能 DtSessionSavePath,它返回应用程序可以在其中保存其状态的文件的完整路径名。 当应用程序正在保存其状态时, dtsession 会等待应用程序通知它已完成。 要告知 dtsession 保存完成,应用程序必须在其顶级窗口上更新 WM_COMMAND 属性。

应用程序顶级窗口上的 WM_COMMAND 属性提供两种作用。 首先,此属性的更改向 dtsession 指示应用程序已完成保存其状态,并且 dtsession 可以继续到下一个应用程序。 其次, WM_COMMAND 属性值应该包含 dtsession 在会话启动时用于重新启动应用程序的命令行。 如果应用程序是用完整路径名启动的,那么在设置 WM_COMMAND 值时,它必须使用该完整路径名。 如果应用程序不需要保存其状态,但希望重新启动,那么这些应用程序可在应用程序启动期间设置 WM_COMMAND 值一次。

恢复会话

在会话启动时, dtsession 确定要复原的会话。 以下列表描述了优先顺序:
  1. 特定于显示的当前会话或主会话
  2. 当前或主会话
  3. 初始会话

会话资源管理

会话管理器使用 X 服务器 RESOURCE_MANAGER 属性使桌面资源对所有应用程序可用。 会话管理器按以下方式装入 RESOURCE_MANAGER:
  1. 装入系统缺省资源。
  2. 合并系统管理员指定的所有资源。
  3. 合并用户指定的所有资源。

可以在 /usr/dt/config/$LANG/sys.resources 文件中找到桌面缺省资源。 通过 RESOURCE_MANAGER 属性,使这些资源对每个用户会话都可用。 不要编辑此文件,因为在后续桌面安装期间将无条件覆盖该文件。

通过创建 /etc/dt/config/$LANG/sys.resources 文件,系统管理员可以覆盖系统缺省资源或指定更多资源。 由于在会话启动期间,此文件会合并到桌面缺省资源中,因此仅新的资源规范或已更新资源规范必须置于此文件中。 更可取的方法是生成桌面缺省资源文件的副本。 通过 RESOURCE_MANAGER 属性,使此文件中指定的资源对每个用户会话都可用。 此文件中指定的资源优先于桌面缺省资源文件中指定的那些资源。

通过编辑 $HOME/.Xdefaults 文件,用户可以覆盖桌面缺省资源和系统管理员资源。 通过 RESOURCE_MANAGER 属性,使此文件中指定的资源仅对该用户会话可用,并且这些资源优先于桌面缺省资源文件或系统管理员资源文件中指定的那些资源。

注: X Toolkit Intrinsics 指定它从 RESOURCE_MANAGER 或从 $HOME/.Xdefaults装入应用程序资源,但不能同时从两者装入。 通常,这意味着将忽略用户的 $HOME/.Xdefaults 文件。 但是,会话管理器通过在会话启动时将其合并到 RESOURCE_MANAGER 中来容纳 $HOME/.Xdefaults 。 当用户更改其 $HOME/.Xdefaults 文件时,在用户调用 ReloadResources 操作之前,其更改对新应用程序不可见。

ReloadResources 操作指示会话管理器使用系统指定的资源,系统管理员指定的资源和用户指定的资源重新装入 RESOURCE_MANAGER。 这使已对系统管理员指定的或用户指定的资源文件所作的更改对新应用程序可用。

会话应用程序管理

在会话启动时,会话管理器将重新启动作为会话的一部分而保存的所有应用程序。 可以在 /usr/dt/config/$LANG/sys.session 文件中找到要在用户初始会话过程中复原的系统缺省应用程序集。 不要编辑此文件,因为在后续桌面安装期间将无条件覆盖该文件。

系统管理员可以通过创建 /etc/dt/config/$LANG/sys.session 文件来替换在用户初始会话过程中复原的应用程序集。 与资源文件不同,此文件可完全替代桌面缺省文件,因此您可以复制系统缺省文件并进行任何必要的修改。

窗口管理器

dtsession 命令启动窗口管理器。 缺省情况下, /usr/dt/bin/dtwm 已启动。 可以使用 wmStartupCommand 资源来指定备用窗口管理器。 有关更多信息,请参阅“工作空间管理器”规范。

样式管理器

样式管理器提供了界面,用户可通过该界面更改当前会话的各个桌面设置和 X 服务器设置。 有关更多信息,请参阅“样式管理器”规范。

颜色服务器

dtsession 命令充当桌面的颜色服务器,并提供可用于对其进行配置的以下资源集:
foregroundColor
控制是否分配像素用于前景色。
dynamicColor
指定是否分配只读颜色。
shadowPixmaps
指定是否为顶部阴影或底部阴影分配颜色。
colorUse
限制颜色分配。
writeXrdbColors
指定资源数据库中是否放置 *background 和 *foreground 资源。
有关更多信息,请参阅 颜色服务器资源 部分。

会话锁

dtsession 命令提供会话锁定。 按下前面板上的锁图标可直接锁定当前会话。 如果 X 服务器支持,那么在当前会话处于不活动状态达到了指定时间后,可将它锁定。 要解锁会话,用户必须输入其登录密码, root 用户的登录密码或 keys 资源指定的任何用户的登录密码。 有关密钥资源的更多信息,请参阅 屏幕锁定和屏幕保存资源

dtsession 命令是服务名称为 dtsession的支持 PAM 的会话管理器。 它支持传统的本地UNIX身份验证以及用于解锁会话的 PAM 身份验证。 各个供应商可增加其他再认证功能,如 DCE 要求的再认证功能。

通过建立 root 用户许可权并将 /etc/security/login.cfg 文件的 usw 节中 auth_type 属性的值修改为 PAM_AUTH来设置使用 PAM 进行认证的系统范围配置。

启用 PAM 时使用的认证机制取决于 /etc/pam.conf中登录服务的配置。 对于 auth 模块类型, dtsession 命令需要 /etc/pam.conf 条目。 对于 dtsession 服务,建议在 /etc/pam.conf 中使用以下配置:
  dtsession        auth               required       /usr/lib/security/pam_aix

屏幕保护程序

dtsession 命令支持从前面板启动外部屏幕保护程序作为会话锁定的一部分,或者在指定的不活动时间段后启动外部屏幕保护程序 (如果 X 服务器支持)。 有关屏幕保护程序如何集成到桌面的信息,请参阅屏幕保护程序规范。

X 服务器屏幕保护程序扩展

dtsession 命令在指定的不活动时间段后提供会话锁定或屏幕保护程序启动的能力取决于 X 服务器屏幕保护程序扩展的可用性。 dtsession 命令支持 X Consortium Sample X11 Screen Saver Extension 1.0 和 HP X Screen Saver Extension。 dtsession 命令能够识别这两个扩展,或者不识别任何这些扩展都是特定于供应商的。

启动会话管理器

必须从 Xsession 脚本启动 dtsession 命令。 登录管理器规范中描述了 Xsession 。 虽然建议从 dtlogin 作为缺省登录序列的一部分启动 Xsession ,但某些系统允许代理程序 (例如 xinitx11startstartx) 启动 Xsession

颜色服务器资源

描述
   
colorUse
ClassClass:
ColorUse
类型:
String
默认值:
缺省值
描述:
指定用于用户界面的颜色的数量。 颜色服务器会根据屏幕的显示平面数确定监视器的类型,如下所示:
1、2 或 3 个平面 (B_W)
指定黑白系统。 调色板将两种颜色单元用于用户界面。 在此配置中,只有两种调色板可用:BlackWhite 和 WhiteBlack。 这两个调色板无法动态更改。 要更改调色板,必须重新启动使用该调色板的所有应用程序。 此资源值强制 ShadowPixmaps 为 True , ForegroundColor 为黑色或白色 (取决于所选选用板)。
4 或 5 个平面 (LOW_COLOR)
指定低色系统。 调色板有两个颜色集,并将最大 12 个颜色单元用于用户界面,包括黑和白(颜色单元 0 和 1)。 可以使用资源 ShadowPixmapsForegroundColor来减少颜色单元格的数量。
6 个平面 (MEDIUM_COLOR)
指定中色系统。 调色板有四个颜色集,并将最大 22 个颜色单元用于用户界面,包括黑和白(颜色单元 0 和 1)。 可以使用资源 ShadowPixmapsForegroundColor来减少颜色单元格的数量。
7 个以上的平面 (HIGH_COLOR)
指定高色系统。 调色板有八个颜色集,并将最大 42 个颜色单元用于用户界面,包括黑和白(颜色单元 0 和 1)。 可以使用资源 ShadowPixmapsForegroundColor来减少颜色单元格的数量。
dynamicColor
ClassClass:
DynamicColor
类型:
布尔
默认值:
True
描述:
此资源的值可为 True 或 False。 dynamicColor 资源用于减少正在使用的颜色单元格数。 选择选用板并且不可能对其进行更改后,可以将 dynamicColor 设置为 False。 如果设置为 False,那么无法通过使用桌面样式管理器来动态更改颜色。 所选调色板在下一次会话中生效。 当下一次会话启动时,颜色服务器会使用可由所有客户机共享的“只读”颜色单元,从而减少所用颜色单元数。
foregroundColor
ClassClass:
ForegroundColor
类型:
String
默认值:
DYNAMIC
描述:
此资源的值可为 White、Black 或 Dynamic。 foregroundColor 资源会导致所有文本 (前台) 使用像素 0 或 1 (黑色或白色) 或具有专用于前台和更改的颜色单元格,以响应每个 ColorSet的背景色 (动态)。 如果设置为 White 或 Black,那么每个颜色集所使用的颜色单元数会减 1。
shadowPixmaps
ClassClass:
ShadowPixmaps
类型:
String
默认值:
缺省值
描述:
对于彩色系统,此资源的值可为 True 或 False。 如果为 True ,那么 topShadowColorbottomShadowColor 将使用与背景相同的像素,并且将指定 topShadowPixmapbottomShadowPixmap 而不是实心颜色来创建三维外观。 它将每个 ColorSet 的颜色单元格数减少 2。 对于具有四个或更少颜色平面 (16 个或更少颜色单元) 的系统,此资源缺省为 True; 对于具有四个以上颜色平面的系统,此资源缺省为 False。
writeXrdbColors
ClassClass:
WriteXrdbColors
类型:
布尔
默认值:
True

屏幕锁和屏幕保护资源

描述
   
keys
ClassClass:
类型:
unsigned char
默认值:
NULL
描述:
列示每次在用户锁定屏幕时都能够对屏幕解锁的密钥持有者。 该列表是由逗号分隔的用户标识列表。 例如,如果用户 kim 在会话期间使以下资源处于活动状态,那么当 kim 锁定屏幕时,用户 fredkeith 能够对其解锁:
Dtsession*keys: fred,keith
passwordTimeout
ClassClass:
passwordTimeout
类型:
unsigned int
默认值:
10
描述:
指定密码对话框从屏幕上除去之前经过的时间(单位:秒)。 当显示锁定时,指针将显示一个锁光标,并且显示一个对话框询问用户密码。 如果没有从指针或键盘上检测到任何活动的持续时间已达 passwordTimeout 秒,会从屏幕上除去该对话框。 一旦检测到指针或键盘事件,该对话框将重新显示。 passwordTimeout 为 0 将使密码对话框在显示锁定的整个时间内持续显示。 缺省值为 10 秒。

其他资源

描述
queryServerSettings
ClassClass:
QueryServerSettings
类型:
布尔
默认值:
False
描述:
指定 dtsession 命令是在注销时查询服务器的所有设置,还是仅保存使用桌面样式管理器设置的那些设置。 查询服务器将确保所有设置都会保存;但是,当执行完全查询时,性能将下降。 缺省值为 False,意味着不会查询服务器。
saveFontPath
ClassClass:
SaveFontPath
类型:
布尔
默认值:
False
wmStartupCommand
ClassClass:
WmStartupCommand
类型:
executable path
默认值:
NULL
描述:
允许在登录时启动备用窗口管理器。 如果此资源为 NULL ,那么 dtsession 将启动 /usr/dt/bin/dtwm。 替代启动可能类似于:
 Dtsession*wmStartupCommand:   /usr/bin/X11/mwm
该命令不能包含任何针对 shell 的命令,并且不能用引号引起来。 如果使用除 /usr/dt/bin/dtwm 以外的任何其他窗口管理器,那么将复原客户机,但可能不会复原到正确的位置。 缺省情况下,此资源包含 NULL 值。

退出状态

返回以下退出值:

描述
0 成功完成。
>0 发生错误。

示例

  1. 要从命令行启动会话管理器,而不恢复先前的会话,请输入:
    dtsession -norestore

位置

/usr/dt/bin/dtsession

文件

描述
/usr/dt/config/$LANG/sys.session 用户初始会话的桌面缺省应用程序集。
/etc/dt/config/$LANG/sys.session 系统管理员为用户初始会话指定的应用程序集。
/usr/dt/config/$LANG/sys.resources 桌面缺省资源。
/etc/dt/config/$LANG/sys.resources 系统管理员指定的资源。
$HOME/.Xdefaults 用户指定的资源。
注: dtsession 命令将会话信息存储在 $HOME/.dt/display$HOME/.dt/sessions中。 这些目录的内容不能由用户直接编辑。
/usr/dt/app-defaults/$LANG/Dtsession 缺省 dtsession 资源。