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

附加的会话启动定制

本节包括:

设置环境变量

    要设置系统范围的环境变量,请在 /etc/dt/config/Xsession.d 目录中创建用于设置及导出变量的文件。

例如,如果创建可执行的 ksh 正文,/etc/dt/config/Xsession.d/myvars 包含:

	export MYVARIABLE="value"

那麽变量 MYVARIABLE 在下次登录时,将被设置在每个用户的 环境中。

    设置个人环境变量,请在 HomeDirectory/.dtprofile 中设置变量。

例如:

	export MYVARIABLE="value"

在下次登录时,将变量 MYVARIABLE 设置在每个用户的 环境中。


注意:

"会话管理器"不自动读取 .profile.login 文件。但是,它可以配置成能够使用这些文件;请参阅 "任选地查找 .profile 或 .login 正文"


设置资源

    设置系统范围的资源,请将资源添加到文件 /etc/dt/config/language/sys.resources 中。(可能需要创建该文件。)


注意:

.dtprofile 只支持 /bin/sh/bin/ksh 语法。


例如,如果在 /etc/dt/config/C/sys.resources 中指定:

	AnApplication*resource: value

那麽资源 AnApplication*resource 在下次登录时,将被 设置在每个用户的 RESOURCE_MANAGER 属性中。

    设置个人资源,请将资源添加到文件 HomeDirectory/.Xdefaults 中。

设置显示器专用的资源

可为系统上的所有桌面用户设置显示器专用的 资源。同样,用户可设置限于自己的会话的显示器专用 资源。这样就可以根据用户登录到桌面的显示器 来指定资源。

    为系统上的所有桌面用户设置显示器专用的资源, 需创建指定显示器专用资源的文件 /etc/dt/config/language/sys.resources

    设置个人的显示器专用资源,需在 HomeDirectory/.Xdefaults 中指定资源。

    通过将这些资源放入 cpp 条件语句中来定界 它们。 DISPLAY_displayname 宏根据 $DISPLAY 变量的值被定义。这是通过将所有 . (句点)和 : (冒号) 字符转换为 _ (下划线),去掉所有 屏幕说明,最后给结果加上 DISPLAY_ 前缀来 实现的。

    例如,:0$DISPLAY 应为 DISPLAY_0blanco.gato.com:0.0$DISPLAY 应为 DISPLAY_blanco_gato_com_0。结果值可用来作为会话资源文件中的 cpp 测试 的一部分。例如,如果在 /etc/dt/config/C/sys.resources 中指定:

    Myapp*resource: value
    #ifdef DISPLAY_blanco_gato_com_0  
         Myapp*resource: specialvalue1  
         #endif
    #ifdef DISPLAY_pablo_gato_com_0  
         Myapp*resource: specialvalue2  
         #endif

    资源 MyApp*resource 将被设置在 RESOURCE_MANAGERspecialvalue1中,当用户登录到显示器 blanco.gato.com:0 上时 ; 当用户登录到显示器 pablo.gato.com:0; 上时值为 specialvalue2; 当用户登录到另一个显示器上时值为 value

更改初始会话的应用程序

可以指定替代应用程序作为用户的初始会话的一部分而启动。

  1. /usr/dt/config/language/sys.session 复制到 /etc/dt/config/language/sys.session 中。

  2. 修改新的 sys.session 文件。

    sys.session 中的每项都呈现为:

    	dtsmcmd -cmd command_and_options
    

    启动作为用户初始会话的一部分的附加应用程序, 需以全路径名指定新的 sys.session 项。例如, 启动 /usr/bin/X11/xclock 作为用户的初始会话的一部分, 需将 xclock 项添加到 /etc/dt/config/C/sys.session 中:

    #  	
    # Start up xclock...  	
    #  dtsmcmd -cmd "/usr/bin/X11/xclock -digital"

设置显示器专用的会话

用户可设置显示器专用的会话,以便将会话调节 到特定的显示器。

    HomeDirectory/.dt/sessions 目录复制到 HomeDirectory/.dt/display,其中 display 为实际的、非全名的主机 名(pablo:0 是有效的,而 pablo.gato.com:0unix:0 不是)。

例如,要为显示器 pablo.gato.com:0 创建显示器专用的会话过程 :

cp -r HomeDirectory/.dt/sessions HomeDirectory/.dt/pablo:0

用户下次登录到显示器 pablo.gato.com:0 上时, "会话管理器"将启动该显示器专用的会话。

在会话过程启动和注销时执行附加的命令

当用户登录到其桌面会话后,便可指定启动附加 的命令。这对于设置未被"会话管理器"保存的 X 设置是有用的。例如,用户可使用 xsetroot 来定制根(工作区)指针。另一种使用方法 是启动不能被"会话管理器"保存及恢复的 应用程序。如果应用程序在会话恢复时不重新启动,用户就可以使用这种方法重新启动客户。

会话启动时执行附加的命令

    创建包含命令的文件 HomeDirectory/.dt/sessions/sessionetc

该文件通常是正文而且必须具有执行许可。应在后台运行在 sessionetc 中启动的进程。


注意:

不要使用 sessionetc 来启动由"会话管理器"自动 恢复的客户。这样的操作可能造成启动应用程序的多重副本 。也许不能立即看到副本,因为窗口会互相堆叠 。


在注销时执行附加的命令

sessionetc 的伴侣文件为 sessionexit。在会话退出时 使用 sessionexit 来执行一些不是由"会话管理器" 处理的操作。

    创建文件 HomeDirectory/.dt/sessions/sessionexit包含命令 。

类似于 sessionetc,该文件通常是具有执行许可的正文。

从备份恢复会话

当"会话管理器"保存会话时,会话信息被存储在 HomeDirectory/.dt/sessions 目录中,如果使用显示器专用的会话,则存储在 HomeDirectory/.dt/display 目录中。在 这些目录中,"会话管理器"创建名为 currenthome 的子目录来为相应的当前或起始会话存储信息。在会话信息被存储之前,"会话管理器" 以所创建的名称为前会话做备份,并将其存储在 current.oldhome.old 中。

  1. 在登录屏幕中,通过使用"故障保险过程"或"命令行登录",进行 登录。

  2. 将备份会话目录复制到活动名中。例如,要 恢复备份起始会话:

    	cp -r HomeDirectory/.dt/sessions/home.old 
    \  	HomeDirectory/.dt/sessions/home

    显示器专用的会话过程可使用相同方式恢复。

调查会话启动故障

    检查文件 HomeDirectory/.dt/startlog

"会话管理器"在该文件中记录每个用户的会话启动进展。