XWindow系统使用指南--第20章全部放在一起--xdm
现在我们已涵盖了你需要用到X的所有个别的项目,你知道如何启动系统,如何设定一个视窗管理器的执行,如何执行应用程式,如何从不同的角度定制
系统,最後,如何退出系统。
本章中,我们把这些分开的部份放在一起,且描述一个完整的档案设定,
用来定制涵盖所有的□例功能系统机器环境。在本章我们将看到我们所要介绍
给你的最後一个X的工具:显示管理器(display manager) -- xdm,它提供一
个精巧和清楚的方法在你的机器上启动X。
20.1 我们需要做些什麽
当我们启动之後,我们需要安排萤幕,让一些我们在整个执行期间中都会
使用的应用程式适得其所,让一些偶然用到的则以表徵图为开始时的表示方式。
我们需要执行视窗管理器,对某些种类的功能做一些设定。详细来说,我们需
要下列的程式:
.一个xterm 的主控台,在萤幕左上角。
.uwm 在背景下执行。
.一个我们的(正常)编辑器的全萤幕xterm 视窗,以表徵图启始。
.在右上角一个(较一般为小)的时钟。
.xbiff 在时钟之下。
.一个计算器在右下角。
.一个用到我们所有最小的字型的表徵图化的xterm ,它的高度为screen高。
.在xbiff 之下,排列我们使用远方机器的频率图。
除了程式之外的项目:
.设定背景视窗为亮灰色。
.启动键盘滴答(key-click) 的功能。
.从我们常用的网路主机存取到我们的server。
.载入我们对所有client用到的server设定的resource,在16章我们定义
的$HOME/.Xresources 档案中,根视窗RESOURCE_MANAGER性质之上。
.启动一个screen saver。
并且我们需要uwm 有选单让我们能够:
.容易地存取在网路上其它的主机。
.变更一些键盘和滑鼠的设定,且设定背景视窗的颜色。
.启动那些我们偶而会用到的应用程式。
.启动一些被选定的示□程式。
对这些我们自己的设定,在我们网路上其它的使用者需要不同的初始设定,
所以我们需要安排每一个使用者依他们自己的喜好设定,理想上,使用者应能
自行设定而毋需藉系统管理者的帮助,下一节我们来看程式xdm 如何能帮助我
们达成这些目的。
20.2 xdm -- X显示管理器(X Display Manager)的概观
xdm 管理一或多个显示器,xdm 可在同一机器或远方的机器上执行。它可
以做到所有xinit 能做到的,而且更多。它所隐含的概念为它应控制当你在X
工作时的完整周期 (session),意即从你进入直到结束视窗系统的周期。(用
xinit ,有效周期为当你执行xinit 开始,到你结束(logout)最初的xterm
视窗和关闭server。)
xdm 较这更进一步:你可以用它执行一个不确定的周期。当一个结束,下
一个便准备开始。实际上,如果你有需要,它让你不变地指定一个显示器。
xdm 完全取代xinit 。从现在起你可忘掉xinit ,而且不再需要使用它,
我们在最初使用xinit 的原因为它较易观察和了解系统的运作。
xdm 是一个非常灵活的程式,你几乎可用它建构任何你所需要的,在进一
步深入之前,让我们观察一个□例周期的预设行为,然後我们来看一看你如
何改进当一个使用者进入X系统所看到的初始介面。
20.2.1 一个用xdm 的□例周期
我们将使用xdm 来设定在我们机器上执行的X。你的机器已经启动,但尚
未有视窗系统在其上执行。用下列的命令启始xdm
xdm
xdm 开始执行,你几乎立刻又看到你的shell 提示。然後萤幕背景变更为
通常灰色形式,且你看到一个大的X游标,所以你知道server已经启始。
接下来是一长段修止状态 -- 大约接续15秒或更久 -- 而後突然间一个带
著欢迎标题的视窗出现了,要求你的登录名称(login name)和密码(password),
如图20-1(这是xdm 的authentication widget )。输入你的使用者名称和密
码,又过了一会儿,你可以看到一个xterm 视窗在左上角出现,就如同图5-3
一般,从现在起,你工作的方式和以前相同 -- 启动你的视窗管理器,执行应
用程式等等。
┌——————————————————————┐
│ FIG 20.1 P.251 │
│ │
│ 图20-1 xdm 的 authentication widget │
└——————————————————————┘
当你需要结束时,你也可用像以前相同的方式结束:logout最初始的xterm
视窗。但这里xdm 和xinit 有不相同的地方,代之关掉server的是,回到非X
的环境,萤幕回到最初始灰色的背景,过一下子之後,你又再度看到X的登录
视窗。事实上,xdm 是执行一个循环的周期。
注意:就像许多的Unix程式,最大的登录名称长度为8 个字元 -- 如果超
过这个长度,login 将会失败。(如果你的实际login 程式允许你使用较长的
名称,这种限制也许让你感到奇怪。)
关闭xdm
有时你可能需要完全地关闭X。为了做到这点,你需要关闭xdm 。
在MIT 版中的server,会依循如果收到Unix讯号SIGTERM ,便会执行中止
程序。xdm 利用到这点:如果你送给它一个SIGTERM ,它将中止所有它所控制
的server後离开。这就是你中止系统的方法。
欲实际地中止xdm ,可以在一个xterm 视窗(在你的机器上)用ps来找出
xdm 的process-id,而後用kill送给它SIGTERM (你将看到数个xdm 处理的执
行:那个最年轻的便是你要的,也就是说,最低的process-id)。例如,在我
们的机器上执行中止的动作:
venus% ps ax 1 grep xdm
1997 ? IW 0:00 xdm
1998 ? IW 0:00 xdm
2000 ? IW 0:00 xdm
2078 p0 S 0:00 grep xdm
venus% kill -TERM 1997
你所有的应用程式将被易做图中止,server也随之关闭。
注意:当相关於X的每一件事都结束後,你的萤幕可能只显示通常X背景
的灰色形式,没有任何的shell 提示或任何事。不要被愚弄了:你的shell 已
准备好接受你的命令 -- 按下RETURN键你将会看到。(因为在你以交谈式下
xdm 命令之後,shell 已将提示号送出,所以不再重覆 -- 除非你按下RETURN)。
20.3 有关xdm 的更多
我们在前所述为xdm 的预设模式的操作,所以看起来并没有比xinit 提供
得更多,如果你使用一个正常的工作站或显示器,一些外貌将不是很有趣。无
论如何,X终端机(x-terminal)是一个日渐增加的大众化设备,而xdm 可大量
地简化管理类似的系统。X终端机通常没有它自己的档案系统,且不能支援一
般目的的程式,必需在网路的某处执行包含视窗管理器和显示管理器的控制终
端机软体,xdm 正是符合此需要的软体。
xdm 在下列这些场合较xinit 为优:
.它可控制数个server,也暗示说,其中有一些为远方的server,也许是
在X终端机或相当小的工作站上。
.它提供密码来存取系统,同样地,在X终端机上非常有用(但在一个你
已经login 的工作站会有一点困扰。)
.它提供无限期的X的周期。你可以建构显示器经常性地以X操作,所以
使用者毋需担心如何启始系统。
.它具有高度的建构性,系统管理者可以设定依机器特性的启始和结束程
序,掌握这些项目以供记帐(accounting),授权(authorization) ,档
案系统等之用,且能让每一个个别的使用者全□围性地修定他们所需的
自己的环境。
.从使用者的观点,它提供一个乾净而简单的方法来启动系统。
所以大体上,xdm 主要是一个系统管理工具,但它也提供让一个普通使用
者定制他所希望的一致和一贯地系统架构。
xdm 的指南页包含了大量的有关如何使用系统的教学资讯和指引,在此我
们不再重覆,我们将在以下的章节说明如何正确地建构xdm 以提供在本章一开
头所描述的环境。
xdm 真的非常有弹性,且你可以用许多不同的方式选择设定,我们将使用
最简单的处理,并试著大致和指南页的描述保持一致,偶而我们在一些档
案中使用不同的名称,用以强调此名称并非硬性的规定。
在我们工作的周期中,请对我们事实上在扮演两个不同的角色保持概念:
第一是系统管理者,对於使用系统的任何人来设定xdm ,第二是一般的使用者