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$DISPLAYDISPLAY_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

    当用户登录到显示器 blanco.gato.com:0上时,资源 MyApp*resource 将在 RESOURCE_MANAGER 中被设置为 specialvalue1 ;当用户登录到显示器 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

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