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

第 3 章 登录和会话启动故障的疑难解答

本章讲述 Solaris CDE 的启动文件和在启动 Solaris CDE 时可能遇到的故障,并且给出启动故障的相应解决方案。

登录启动文件

当 Solaris CDE 登录管理器认证了用户之后,将调用下面的脚本来启动桌面:

/usr/dt/bin/Xsession

Xsession 调用的第一个用户特定的文件是 HomeDirectory/.dtprofile.

当新用户第一次登录到 Solaris CDE 时,.dtprofile 文件将被复制到用户的起始目录中。在缺省情况下,此文件不起任何作用。但此文件中的确包含许多如何可以编辑此文件的说明。用户可以编辑此文件,以便添加指定用户的环境变量。


注意:

正如 Xsession 脚本调用 .dtprofile 一样,此文件使用 ksh 语法。


一种有用的编辑是撤销文件 .dtprofile 的最后一行的注释:

DTSOURCEPROFILE=true

此行允许用户的 HomeDirectory/.login 文件 (用于 csh 用户) 或 HomeDirectory/.profile 文件 (用于其他 shell 用户) 作为启动进程的一部分来查找。

错误记录位置

从 Solaris CDE 登录屏幕的“选项”菜单选择“失败安全过程”,以便绕过正常的 Xsession 启动,来查看错误记录,并且排除可能出现的用户点文件故障。表 3–1 显示错误记录及其位置。

表 3–1 错误记录位置

位置 

错误记录 

/var/dt/Xerrors

在用户登录之前的 Solaris CDE 登录窗口系统错误

HomeDirectory /.dt/startlog

在调用 Xsession.dtprofile.login.profile 期间发生的 Solaris CDE 启动错误

HomeDirectory /.dt/errorlog

Xsession 启动之后的 Solaris CDE 错误

HomeDirectory /.dt/sessionlogs

“会话管理器”和“窗口管理器”错误的会话记录所在的目录

有些错误也显示在“系统控制台”窗口中。如果“系统控制台”窗口此时并未运行,则应急控制台记录文件名是 wscon,并与时间/显示码连在一起。例如:

/usr/tmp/wsconAAAa004EE:0.0

用户启动文件

要寻找 .login (对于 csh 用户) 或 .profile (对于 shksh 用户) 文件,需要撤去要读取的文件 .dtprofile 的最后一行的注释为:

DTSOURCEPROFILE=true

在大多数情况下,这就足够了。但在某些情况下,由于文件 .login.profile 可能含有不适用于 Solaris CDE “登录管理器”的命令,所以您还需要修改该文件。如果其中一条命令出故障,则通常与期待终端键盘输入源 (如 sttytset 或者与 “wait for input” 命令) 的文件有关。


小心:小心:

如果 .dtprofile 被设置为寻找文件 .login.profile,而这些文件中又含有出故障的命令,这些命令将使 shell 崩溃,那么桌面启动将失败。结果是不显现任何桌面。相反,您将看到 Solaris CDE 登录屏幕重新显示。.login.profile 中的启动错误通常将被记录在文件 HomeDirectory/.dt/startlog 中。可利用失败安全会话或命令行登录方式来调试在 .login.profile 中出故障的命令。


有关故障及其可能的解决方案的更多信息,请参阅 .dtprofile。出故障的命令一般与终端信息和控制有关。

Solaris CDE 启动实例

本节提供了如何编辑下列的用户启动文件的实例:

Solaris CDE 启动进程在 .login.profile 文件的脚本中定义了名为 DT 的 shell 变量,以便在 Solaris CDE 的启动进程中进行检查。这就避免了执行像 ttystty 这样的与终端有关的命令。请参阅下面的脚本实例:

.login ( C shell )

	if ( ! ${?DT} ) then
		stty erase `^h`
	endif

.profile (sh or ksh)

	if [ ! “$DT” ]; then
		stty erase `^h`
	fi

围绕 DT 的外加语法避免了在未定义 DT 时来自 C shell 的警告。当用户利用传统的基于文本的控制台登录提示符来登录时,DT 是未定义的。有关设置点文件的详细信息,请参阅 HomeDirectory /.dtprofile 文件。


注意:

.Xdefaults 中指定 Solaris CDE tty 设置。


在 Solaris CDE 启动时,为用户特定的资源查找用户的 .Xdefaults 文件。例如,ttyModes 确保在像 dttermxterm 这样的终端仿真窗口中,可以使用用户最喜爱的 tty 设置。下面一行在 .Xdefaults 文件中显示典型的 ttyModes 设置:

*ttyModes: erase ^H intr ^C kill ^U start ^Q stop ^S susp ^Z`


注意:

最喜爱的 Solaris CDE 资源与缺省的设置不同。


“桌面”的“窗口管理器”的图标放置就是一个缺省设置的实例。在这种情况下,在文件 .Xdefaults 中的下面一行显示了缺省的图标放置设置:

Dtwm*iconPlacement: right top