本节包括:
设置环境变量
设置资源
使用与显示器相关的会话
在登录时运行脚本
恢复备份会话
例如,如果创建可执行的 ksh 脚本,/etc/dt/config/Xsession.d/myvars, 它包含:
export MYVARIABLE="value"
那么变量 MYVARIABLE
在下次登录时将被设置到每个用户的环境中。
例如:
export MYVARIABLE="value"
在下次登录时会把变量 MYVARIABLE
设置到每个用户的环境中。
“会话管理器”不自动读取 .profile 或 .login 文件。然而,可以对它进行配置来使用这些文件,参见 可选地查找 .profile 或 .login 脚本。
.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_0
;blanco.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。
可以指定替代应用程序,把它作为用户初始会话的一部分来启动。
将 /usr/dt/config/language /sys.session 复制为 /etc/dt/config/language/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:0 或 unix:0 无效)。
例如,要为显示器 pablo.gato.com:0 创建显示器专用会话:
cp -r HomeDirectory/.dt/sessions HomeDirectory/.dt/pablo:0
用户下次登录到显示器 pablo.gato.com:0 上时,“会话管理器”将启动该显示器专用会话。
当用户登录到其桌面会话后,便可指定启动附加的命令。这对于设置未被“会话管理器”保存的 X 设置是有用的。例如,用户可使用 xsetroot 来定制根 (工作区) 指针。另一种使用方法 是启动不能被“会话管理器”保存及恢复的应用程序。另一个用途是启动“会话管理器”不能保存和恢复的应用程序。如果应用程序在会话恢复时没有重新启动,用户可以使用这种方法启动客户机。
该文件通常是脚本而且必须具有执行许可。应在后台运行在 sessionetc 中启动的进程。
不要使用 sessionetc 来启动由“会话管理器”自动恢复的客户机。这样的操作可能导致启动应用程序的多个副本。也许不能立即看到副本,因为窗口可能会互相堆叠 。
sessionetc 的伴侣文件为 sessionexit。在会话退出时使用 sessionexit 来执行一些不是由“会话管理器”处理的操作。
创建包含命令的文件 HomeDirectory/.dt/sessions/sessionexit。
类似于 sessionetc,该文件通常是具有执行许可的脚本。
当“会话管理器”保存会话时,会话信息被存储在 HomeDirectory/.dt/sessions 目录中;如果使用显示器专用会话,则存储在 HomeDirectory/.dt/display 目录中。在这些目录中,“会话管理器”创建名为 current 或 home 的子目录来分别为相应的当前或起始的会话存储信息。在会话信息被存储之前,“会话管理器”以所创建的名称为前会话做备份,并将它存储在 current.old 或 home.old 中。
从登录屏幕,通过使用“失败安全会话”或“命令行登录”进行登录。
将备份会话目录复制到活动名中。例如,要恢复备份起始会话:
cp -r HomeDirectory/.dt/sessions/home.old \ HomeDirectory/.dt/sessions/home
显示器专用会话可使用相同方式恢复。
“会话管理器”在该文件中记录每个用户的会话启动进度。