以下新增控制台功能可以提高您对远程系统进行故障排除的能力:
利用 consadm 命令,您可以选择串行设备作为辅助(或远程)控制台。使用 consadm 命令,系统管理员可以配置一个或多个串行端口,以便当系统在不同运行级之间转换时显示重定向的控制台消息,并托管 sulogin 会话。借助此功能,您可用调制解调器拨入并连接到串行端口,以监视控制台消息并参与 init 状态转换。有关更多信息,请参见 sulogin(1M) 和后面的逐步过程。
使用配置为辅助控制台的端口登录系统时,它主要用作输出设备,其中显示的信息也在缺省控制台中显示。如果引导脚本或其他应用程序从缺省控制台中读取内容或向其中写入内容,则写入输出将在所有辅助控制台上显示,但输入只从缺省控制台中读取。有关在交互式登录会话期间使用 consadm 命令的更多信息,请参见在交互式登录会话期间使用 consadm 命令的准则。
控制台输出包括内核和写入新的伪设备 /dev/sysmsg 的 syslog 消息。此外,rc 脚本启动消息也将写入 /dev/msglog。以前,所有这些消息都写入 /dev/console。
如果希望看到显示在辅助控制台中的脚本消息,那么需要把将控制台输出定向到 /dev/console 的脚本更改为 /dev/msglog。如果希望将消息重定向到辅助设备,则应该将引用 /dev/console 的程序显式修改为使用 syslog() 或 strlog()。
consadm 命令运行守护进程来监视辅助控制台设备。指定为辅助控制台并且已断开、挂起或失去载体的任何显示设备都将从辅助控制台设备列表中删除,并且不再处于活动状态。启用一个或多个辅助控制台不会禁用缺省控制台上的消息显示,消息将继续在 /dev/console 中显示。
在运行级转换期间使用辅助控制台消息传递时,请记住以下几点:
如果在系统引导时运行的 rc 脚本期望用户输入,则输入不能来自辅助控制台。输入必须来自缺省控制台。
由 init 调用以用于在运行级之间转换时提示输入 root 口令的 sulogin 程序已被修改,除了缺省控制台设备之外,还可以向每个辅助设备发送 root 口令提示。
用户永远不应直接调用 sulogin。用户必须具有 solaris.system.maintenance 授权才能使用此实用程序。
当系统处于单用户模式并且使用 consadm 命令启用一个或多个辅助控制台时,将在第一个设备上运行控制台登录会话,以便为 sulogin 提示符提供正确的 root 口令。从控制台设备收到正确口令时,sulogin 将禁用来自所有其他控制台设备的输入。
如果其中一个控制台承担了单用户特权,将在缺省控制台和其他辅助控制台上显示一条消息。此消息指出已通过接受正确的 root 口令而成为控制台的设备。如果运行单用户 shell 的辅助控制台中丢失载体,则会执行以下两种操作之一:
如果辅助控制台代表一个处于运行级 1 的系统,则系统会继续到缺省运行级。
如果辅助控制台代表一个处于运行级 S 的系统,则系统会显示已通过 Shell 输入 init s 或 shutdown 命令的设备中的 ENTER RUN LEVEL (0-6, s or S): 消息。如果该设备中也没有任何载体,则必须重新建立载体并输入正确的运行级。init 或 shutdown 命令不再重新显示运行级提示。
如果使用串行端口登录系统,并发出 init 或 shutdown 命令以转换到其他运行级,则无论此设备是否为辅助控制台,登录会话都将丢失。此情况与没有辅助控制台功能的发行版相同。
一旦使用 consadm 命令将设备选作辅助控制台,该设备将一直用作辅助控制台,直到重新引导系统或取消选中辅助控制台为止。但是,consadm 命令有一个选项,可在系统重新引导期间将设备设置为辅助控制台。(有关逐步说明,请参见以下过程。)
如果要通过使用与串行端口连接的终端登录系统,再使用 consadm 命令查看终端的控制台消息的方式来运行交互式登录会话,请注意以下行为。
如果在辅助控制台处于活动状态时将终端用于交互式登录会话,则会向 /dev/sysmsg 或 /dev/msglog 设备发送控制台消息。
在终端发出命令时,输入将转到交互式会话而非缺省控制台 (/dev/console)。
如果运行 init 命令更改运行级,远程控制台软件将中止交互式会话并运行 sulogin 程序。此时,只接受来自终端的输入,并将其视为来自控制台设备的输入。这样您便可以按在运行级转换期间使用辅助控制台消息传递中所述为 sulogin 程序输入口令。
然后,如果您在(辅助)终端中输入正确口令,辅助控制台将运行交互式 sulogin 会话,并锁定缺省控制台和任何竞争性的辅助控制台。这意味着,终端基本上可用作系统控制台。
此时,您可以更改到运行级 3 或转到其他运行级。如果更改运行级,sulogin 将在所有控制台设备中再次运行。如果您退出或指定系统应达到运行级 3,则所有辅助控制台都将丧失提供输入的能力。它们将恢复为控制台消息的显示设备。
随着系统的提升,您必须为缺省控制台设备中的 rc 脚本提供信息。在系统恢复启动后,login 程序将在串行端口上运行,您可以重新登录到其他交互式会话中。如果已将该设备指定为辅助控制台,您将继续在终端中获得控制台消息,但来自该终端的所有输入都将转至交互式会话。
在您使用 consadm 命令添加辅助控制台之前,consadm 守护进程不会开始监视端口。作为一种安全功能,在载体脱机或取消选择辅助控制台设备之前,控制台消息只能重定向。这意味着必须在端口中建立载体,才能成功使用 consadm 命令。
有关启用辅助控制台的更多信息,请参见 consadm(1m) 手册页。
示例 5-3 启用辅助(远程)控制台# consadm -a /dev/term/a # consadm /dev/term/a
# consadm -a -p devicename
这将会向持久性辅助控制台列表中添加设备。
# consadm
# consadm -a -p /dev/term/a # consadm /dev/term/a
# consadm -d /dev/term/a # consadm