Solaris 公用桌面环境:高级用户和系统管理员指南

当会话启动时

"会话管理器"启动时,它经过下面的步骤启动用户的会话:

  1. 查找 HomeDirectory/.dtprofile 脚本

  2. 查找 Xsession.d 脚本

  3. 显示欢迎消息

  4. 设置桌面查找路径

  5. 收集可用的应用程序

  6. 随意地查找 HomeDirectory/.profileHomeDirectory /.login

  7. 启动 ToolTalk(R) 消息传送守护程序

  8. 装入会话资源

  9. 启动颜色服务器

  10. 启动"工作区管理器"

  11. 启动会话应用程序

    以下各节讲述上述步骤。

查找 .dtprofile 脚本

会话一启动,Xsession 脚本便开始查找用户的 HomeDirectory/.dtprofile 脚本。HomeDirectory /.dtprofile 脚本是一个 /bin/sh/bin/ksh 脚本,它使用户可以为自己的会话设置环境变量。 有关设置环境变量的详细信息,请参阅"附加的会话启动定制"

如果 HomeDirectory/.dtprofile 脚本不存在,例如当用户第一次登录到桌面时,Xsession 将把桌面缺省文件 sys.dtprofile 复制到 HomeDirectory /.dtprofile

桌面缺省值为 /usr/dt/config/sys.dtprofile。要定制 sys.dtprofile 脚本,需将 sys.dtprofile/usr/dt/config 复制到 /etc/dt/config 中,并编辑新文件。

查找 Xsession.d 脚本

查找 HomeDirectory/.dtprofile 脚本之后,Xsession 脚本查找 Xsession.d 脚本。这些脚本用来设置附加的环境变量,并为用户的会话启动可选守护程序。缺省的 Xsession.d 脚本为:

0010.dtpaths-将可定制的桌面查找路径记入文档

0020.dtims-启动可选的输入方法服务器

0030.dttmpdir-创建每个用户、每个会话的临时目录

0040.xmbind-将 $XMBINDDIR 设置为桌面缺省值

Xsession.d 中还可能另外附有一些供应商专用脚本。

Xsession 首先查找 /etc/dt/config/Xsession.d 目录中的所有文件,然后是 /usr/dt/config/Xsession.d 目录中的所有文件。

桌面缺省的 Xsession.d 脚本位于 /usr/dt/config/Xsession.d 目录。要定制 Xsession.d 脚本,需将脚本从 /usr/dt/config/Xsession.d 复制到 /etc/dt/config/Xsession.d 中, 并编辑新文件。必须具有执行许可才能执行该任务。

同样,要使 Xsession 自动查找您自己的脚本,需将该脚本复制到 /etc/dt/config/Xsession.d 中。


注意:

修改或创建 Xsession.d 脚本时,要确保发出的任何前台命令持续时间不长,因为命令所占用的时间将直接影响会话启动时间。如果前台命令不退出,则会话启动将挂起。如果想要 Xsession.d 脚本中运行的命令在会话期间继续运行,就应该在后台运行它们。


显示欢迎消息

查找 HomeDirectory/.dtprofileXsession.d 脚本之后,Xsession 显示覆盖屏幕的欢迎消息。可以定制显示的欢迎消息,或完全关闭消息。dthello 客户机被用来显示消息。

要更改信息文本,可以通过修改 dtstart_hello[0] 变量来更改 dthello 选项。

要更改 dtstart_hello[0],需创建设置新值的 /etc/dt/config/Xsession.d 脚本。要为所有用户显示当日的消息,需创建可执行的 shksh 脚本 (例如 /etc/dt/config/Xsession.d/myvars),并将 dtstart_hello[0] 设置如下:

 dtstart_hello[0]="/usr/dt/bin/dthello -file /etc/motd &"

类似地,用户可通过设置 HomeDirectory/.dtprofile 中的 dtstart_hello[0] 来更改它们的会话的欢迎消息。

要关闭欢迎消息,需设置 dtstart_hello[0]=" "。

有关 dthello 的详细内容,请参阅 dthello 手册页。

设置桌面查找路径

桌面查找路径由 dtsearchpath 在登录时创建。dtsearchpath 使用两类环境变量:

输入变量-全系统的及个人的环境变量,它们的值由系统管理员或最终用户设置。

输出变量-由 dtsearchpath 创建并赋值的变量。每个变量的值都是桌面会话的查找路径。

要更改 dtsearchpath 的命令行选项,需修改 dtstart_searchpath 变量。要为所有用户更改 dtstart_searchpath 变量,需创建可执行的 shksh 脚本 (例如 /etc/dt/config/Xsession.d/myvars),并将 dtstart_searchpath设置如下:

dtstart_searchpath="/usr/dt/bin/dtsearchpath"

类似地,用户可以通过设置 HomeDirectory/.dtprofile 中的 dtstart_searchpath 来只为自己的会话更改 dtsearchpath 选项。

有关 dtsearchpath 的详细信息,请参阅第 9 章,桌面查找路径。有关 dtsearchpath 选项的详细信息,请参阅 dtsearchpath 手册页。

收集可用的应用程序

设置桌面查找路径后的下一步是使用 dtappgather 收集可用的应用程序。更改 dtappgather 的命令行选项,需修改 dtstart_appgather 变量。要为所有用户更改 dtstart_appgather 变量,需创建可执行的 shksh 脚本 (例如 /etc/dt/config/Xsession.d/myvars) ,并将 dtstart_appgather 设置如下:

dtstart_appgather="/usr/dt/bin/dtappgather &"

类似地,通过设置 HomeDirectory/.dtprofile 中的 dtstart_appgather,用户可以仅改变自己会话的 dtappgather 选项。

有关 dtappgather 选项的详细信息,请参阅 dtappgather(4) 手册页。

可选地查找 .profile 或 .login 脚本

Xsession 能够查找用户的传统 HomeDirectory /.profileHomeDirectory /.login 脚本。在缺省情况下禁用该能力。要告知 Xsession 查找 .profile.login 脚本,需将 DTSOURCEPROFILE 设置为 true

要为所有用户更改 DTSOURCEPROFILE ,需创建设置新值的 /etc/dt/config/Xsession.d脚本。为所有用户将 DTSOURCEPROFILE 设置为 true,需创建可执行的 shksh 脚本,例如 /etc/dt/config/Xsession.d/myvars,并将 DTSOURCEPROFILE 设置如下:

DTSOURCEPROFILE=true

类似地,通过在 HomeDirectory/.dtprofile 中将 DTSOURCEPROFILE 设置为 true, 用户可以为自己的会话更改 DTSOURCEPROFILE

启动 ToolTalk 消息守护程序

ToolTalk 消息传送守护程序,ttsession,使独立的应用程序可以在相互不直接了解的情况下通信。应用程序创建并发送 ToolTalk 消息来互相通信。ttsession 在网络上通信以传送消息。

要更改 ttsession 的命令行选项,需更改 dtstart_ttsession 变量。要为所有用户更改 dtstart_ttsession 变量,需创建可执行的 shksh 脚本 (例如 /etc/dt/config/Xsession.d/myvars),并将 dtstart_ttsession 设置如下:

 dtstart_ttsession="/usr/dt/bin/ttsession -s"

类似地,通过设置 HomeDirectory/.dtprofile 中的 dtstart_appgather,用户可以仅改变自己会话的 dtappgather 选项。

有关 ttsession 选项的详细信息,请参阅 ttsession 手册页。有关 ttsession 的详细信息,请参阅Common Desktop Environment: ToolTalk Messaging Overview

启动会话管理器客户机

此时,Xsession 启动 /usr/dt/bin/dtsession,使会话启动进程继续下去。

装入会话资源

"会话管理器"使用 X服务器的 RESOURCE_MANAGER 属性以使桌面资源可用于所有应用程序。"会话管理器"通过下面的方法装入 RESOURCE_MANAGER

桌面缺省资源可以在 /usr/dt/config/language/sys.resources找到。通过 RESOURCE_MANAGER 特性,使这些资源可用于每个用户的会话。不应编辑此文件,因为它会被后续的桌面安装覆盖。

可以通过创建 /etc/dt/config/language/sys.resources 来增加系统缺省资源。在此文件中,您可以覆盖所有桌面用户的缺省资源或为所有桌面用户指定附加的资源。因为在会话启动过程中此文件被合并到桌面缺省资源中,所以只有新的或更新过的资源规范才能放到此文件中。通过 RESOURCE_MANAGER 特性,该文件中指定的资源可用于每个用户的会话。该文件中指定的资源优先于桌面缺省资源文件中所指定资源。

用户可以使用其 HomeDirectory/.Xdefaults 文件增加桌面缺省的和全系统的资源。通过 RESOURCE_MANAGER 特性,将使该文件中指定的资源用于该用户的会话。该文件中指定的资源优先于桌面缺省资源或系统管理员资源文件中所指定资源。


注意:

"X 工具包内置工具"公用程序指定将从 RESOURCE_MANAGER 或者从 HomeDirectory /.Xdefaults 为应用程序装入资源,但是不可同时从二者装入资源。一般,这意味着会忽略用户的 HomeDirectory /.Xdefaults 文件。但是,如上所述,在会话启动时"会话管理器"通过将 HomeDirectory/.Xdefaults 合并到 RESOURCE_MANAGER 中来调整前者。如果用户更改 RESOURCE_MANAGER /.Xdefaults,那么在用户调用"重新装入资源"操作之前,所做的更改对新的应用程序是看不到的。"重新装入资源"操作将命令"会话管理器"重新装放带有缺省的、全系统的及用户指定资源的 RESOURCE_MANAGER。这样,对全系统的及个人的资源文件所做的更改就可用于应用程序。


有关详细信息,请参阅:

启动颜色服务器

"会话管理器"用作桌面的颜色服务器并提供下面的 dtsession 资源集,这些资源集可用来配置 "会话管理器"。

foregroundColor-控制是否为前景颜色分配像素

dynamicColor-指定是否分配只读颜色

shadowPixmaps-指定是否为顶部阴影或底部阴影分配颜色

colorUse-限制颜色的分配

writeXrdbColors-指定是否在资源数据库中放置 *background*foreground 资源

通过创建 /etc/dt/config/language /sys.resources, 并在该文件中指定颜色服务器,为所有用户设置颜色服务器资源。

用户也可以类似地通过在 HomeDirectory/.Xdefaults 指定颜色服务器资源来为自己的会话设置颜色服务器资源。

有关设置颜色服务器资源的详细信息,请参阅"管理颜色"

启动工作区管理器

"会话管理器"负责启动"工作区管理器"。在缺省情况下会启动 /usr/dt/bin/dtwm。可以使用 wmStartupCommand 资源指定替代窗口服务器。

可以通过创建 /etc/dt/config/language /sys.resources,并用该文件中的 Dtsession*wmStartupCommand 资源为窗口管理器指定全路径名及选项,来为所有用户指定替代窗口管理器。

用户可以类似地通过在 HomeDirectory/.Xdefaults 指定 Dtsession*wmStartupCommand 资源只为自己的会话指定替代窗口管理器。

有关"窗口管理器"的详细信息,请参阅第 16 章,定制工作区管理器

启动会话应用程序

会话一启动,"会话管理器"将重新启动被保存为会话的一部分的任何应用程序。即将被恢复为用户初始会话一部分的系统缺省应用程序集可在 /usr/dt/config/language /sys.session 中找到。不应编辑此文件,这是因为在后续的桌面安装过程中,它将被无条件覆盖。

有关详细信息,请参阅 dtsessionfile(4) 手册页。

系统管理员可以将 /usr/dt/config/language /sys.session 复制到 /etc/dt/config/language/sys.session,并修改后面这个文件,这样即可替换作为用户初始会话的一部分而启动的应用程序集。与资源文件不同,该文件将用作桌面缺省文件的完整替换,所以您可以复制一份系统缺省文件,并做任何必要的修改。