本章描述 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 | |
HomeDirectory/.dt/startlog | |
HomeDirectory/.dt/errorlog |
在Xsession起动之后的 Solaris CDE 错误 |
HomeDirectory/.dt/sessionlogs |
有些错误也显示在"系统控制台"窗口中。如果"系统控制台"窗口此时并未运行,则备用控制台记录文件名是wscon,并与时间/显示码连在一起。例如:
/usr/tmp/wsconAAAa004EE:0.0
要寻找.login(对于csh 用户) 或.profile(对于sh 或ksh用户)文件,首先撤去文件.dtprofile 的最后一行的注释,使它成为:
DTSOURCEPROFILE=true
在大多数情况下,这就足够了。但在某些情况下, 由于文件.login或.profile可能含有 Solaris CDE "登录 管理器"所不支持的命令,所以您还需要修改该文件。 如果一条命令出故障,则其通常与等待终端键盘输入源的文件有关,其等待的键盘输入源为stty、tset 或者与 "等待输入"命令有关。
如果.dtprofile被设置寻找文件.login 或.profile,而这些文件中又含有出故障的命令,这些命令将使 shell 崩溃,这时桌面起动将失败。结果是不显现任何桌面。相反,您将看到 Solaris CDE 登录屏幕重新显示。.login 或.profile中的起动错误通常将被记录在文件HomeDirectory/.dt/startlog中。此时可利用故障保险过程或命令行登录方式 来调试在.login或.profile 中出故障的命令 。
关于故障及其可能的解决方案的更多信息,请参阅.dtprofile 。出故障的命令一般与终端信息和控制有关。
本节提供了如何编辑下列用户起动文件 的示例:
Solaris CDE 起动进程在.login或.profile文件的正文中定义了名为 DT 的 shell 变量,其作用是 在Solaris CDE 的起动进程中检查是否出错。 这避免了象tty和stty这样的与终端有关的命令的执行。请参阅下列正文示例:
.login( C shell )
stty erase `^h`
endif
.profile(sh或ksh)
if [ ! "$DT" ]; then
stty erase `^h`
fi
DT 的额外语法避免了在未定义 DT 时来自 C shell 的警告。 当用户利用传统的基于文本的控制台登录提示符来登录时, DT 是未定义的。关于设置点文件的进一步信息,请参阅HomeDirectory/.dtprofile 文件。
在.Xdefaults中指定 Solaris CDEtty设置。
用户的.Xdefaults文件在Solaris CDE 起动时,寻找用户专用的资源。例如, ttyModes 确保在象 dtterm 或 xterm 这样的终端仿真窗口中,可以使用用户所喜欢的 tty 设置。下面一行是典型的 ttyModes 设置,显示在.Xdefaults文件中 :
*ttyModes: erase ^H intr ^C kill ^U start ^Q stop ^S susp ^Z`
喜欢的 Solaris CDE 资源与缺省的设置不同。
"桌面"的"窗口管理器"的图标放置,就是一个缺省设置的示例。 在这种情况下,在文件.Xdefaults中的下列行 显示了缺省的图标放置设置:
Dtwm*iconPlacement: 右上