控制台特殊文件
用途
提供对系统控制台的访问权。
描述
/dev/console 特殊文件提供对指定为系统控制台的设备或文件的访问。 管理系统的人员或具有相应许可权的用户可将此文件指定为控制台设备。 console 字符 特殊文件 提供对控制台设备驱动程序的访问。 控制台设备驱动程序进而将输入和输出定向到选择作为系统控制台的设备或文件。
通常,系统控制台是位于系统部件附近的终端或显示器。 它在操作系统中具有两个功能。 首先,当系统以非多用户方式运行时,它提供对系统的访问。 (在维护和诊断会话期间将是这种情况。) 对于所有操作系统运行级别,通常也会在此设备上提供控制台登录。
其次,系统控制台显示系统错误和其他需要干预的问题的消息。 这些消息是由操作系统及其各种子系统在启动或运行时生成的。 对于在没有控制台设备的情况下运行的系统,还可以将系统控制台重定向到文件或 /dev/null 特殊文件。
控制台驱动程序配置支持
控制台驱动程序配置支持允许将系统控制台分配或重新分配给指定的设备或文件。 此类支持还提供查询功能以确定指定为控制台的设备或文件的当前路径名和已配置路径名。 Swcons, 奇孔和 Lscons 高级系统管理命令将使用此配置支持。 它也在系统启动时由控制台配置方法使用。
在系统操作期间,可以使用 Swcons (切换控制台) 命令将系统控制台输出临时切换到另一个目标。 此命令仅将系统信息,错误和需要干预的消息切换到指定的目标。 Swcons 命令不会影响通过 盖蒂 命令提供登录信息的系统控制台设备的操作。 使用 Swcons 命令时指定的设备或文件将保留为控制台输出的目标,直至发生下列其中一种情况:
- 发出另一个 Swcons 命令。
- 系统将再次启动。
- 控制台驱动程序在访问指定设备或文件时检测到错误。
如果在 Swcons 命令指定的设备或文件上检测到打开或写入错误,那么在系统启动时,控制台设备驱动程序会将所有输出切换回提供控制台支持的设备或文件。
奇孔 (更改控制台) 命令可用于将系统控制台输出切换到其他设备或文件,以便下次启动时使用。 此命令不会影响当前控制台选择,但会在系统再次启动时生效。
当请求激活控制台设备上的登录时, 盖蒂 程序 (提供登录支持) 将使用控制台配置支持来确定启动时使用的目标控制台设备的路径名。 此操作可确保 Swcons 命令不会影响正在用于登录的控制台设备。
使用注意事项
open, close,read, write, ioctl, select和 poll 子例程受控制台设备驱动程序支持,可与 /dev/console 特殊文件配合使用。 控制台设备驱动程序会将这些子例程重定向到充当当前系统控制台设备的设备或文件。
打开和关闭子例程
当向控制台设备驱动程序发出 开 子例程调用时,它将重定向到当前选择作为控制台设备的设备或文件。 如果系统控制台选项是文件,那么当接收到 开发/控制台 文件的第一次打开时,将使用 追加 和 创建 选项打开该文件。 当控制台选择是文件时,后续打开不起作用。 但是,打开操作随后会传递到支持选择作为控制台的设备的设备驱动程序。
如果已使用 Swcons 命令临时切换控制台选择,并且首次打开新的底层设备失败,那么控制台设备驱动程序将切换回引导系统时所使用的控制台设备或文件。 这可防止重要系统消息丢失。
使用 奥佩克斯 子例程传递的 扩展 参数将传递至支持控制台目标的设备驱动程序,否则将被忽略。 (如果控制台选择是文件,那么后者为 true。)
关闭 子例程支持是标准的。
select , poll 和 ioctl 子例程
当控制台选择不是文件时,会将 选择, 轮询和 ioctl 子例程重定向到当前系统控制台设备。 如果所选控制台设备是文件,那么控制台设备驱动程序将返回一个错误,指示该子例程不受支持。
然后,传递给 Ioctlx 子例程的 扩展 参数将传递给支持控制台目标的设备驱动程序,否则将被忽略。 (如果控制台选择是文件,那么后者为 true。)
读写子例程
写 子例程调用将重定向到当前控制台设备或文件。 如果已使用 Swcons 命令临时切换控制台选择,并且对目标设备或文件的写操作未成功,那么控制台设备驱动程序将切换回启动系统的控制台设备或文件,然后重试该写操作。 这可防止在临时控制台目标不可用或不成功的情况下丢失重要的系统消息。 控制台设备驱动程序应保持连接到原始系统设备,直到发出另一个 Swcons 命令为止。
如果当前控制台选择是设备,那么它会重定向 读 子例程调用。 如果当前控制台选择是文件,那么 读 调用将被拒绝并返回错误 (EACCES)。
传递给 读 或 写 子例程的 扩展 参数将传递给支持控制台目标的设备驱动程序,否则将被忽略。 (如果控制台选择是文件,那么后者为 true。)
控制台输出日志记录
发送到控制台的所有输出都将记录到系统日志文件中。 仅记录发送到控制台的输出。 将不记录发送到充当控制台的设备的任何输出。 这意味着系统参考,错误和需要干预的消息会被捕获 (记录) ,而在控制台上看到的其他类型的输出则不会被捕获 (例如, getty 输出, smitty 输出,控制台设备上的用户交互等)。
日志文件基于 阿洛格 格式; 此格式允许文件在达到预定的最大大小后进行回绕。 通常,使用 阿洛格 命令来查看控制台日志文件。 控制台日志文件偏离了正常的 alog 格式,因为除了记录的文本之外,文件的每个记录还包含写入控制台的用户标识以及写入时的戳记时间。 在 阿洛格 命令输出文件时,戳记时间将格式化并显示在用户的语言环境日期和时间内。
配置控制台设备或对控制台日志文件进行任何修改时,会将文件的所有权设置为 root 用户,并将许可权设置为 620。 root 用户可以修改所有权或许可权,但它们不会在整个引导过程中持久存在。
Swcons 命令用于在系统操作期间对控制台日志记录参数进行更改; 这些更改将在下一个控制台设备配置 (通常是重新引导) 时被撤销,并且原始控制台日志记录参数将恢复。
奇孔 命令用于对下一个控制台设备配置的控制台日志记录参数进行更改 (通常重新引导)。 这些更改不适用于当前正在运行的系统。
还可以使用 阿洛格 命令来配置控制台日志记录工具。 当使用 alog -C 标志时,更改将在当前运行系统中生效,并在多次重启后保持持久性。 当使用 -s 标志(不带 -C 标志)修改文件大小时,文件会立即被修改,但该修改不会保存在 文件中 ODM ,且不会在系统重启后持续生效。
用于控制控制台日志记录工具的参数包括日志文件的路径名,日志文件的最大大小以及日志记录的详细程度索引。 对这些参数的限制为:
- 日志文件路径必须是绝对路径
- 最大文件大小不得超过存储它的文件系统的当前可用空间 (并且用户输入的值将向上舍入为最接近的 4K 边界)
- 详细程度值 9 为 0 到 9 ,任何大于 0 的值都表示将记录所有控制台输出。
控制台输出标记
提供了一个工具,以将消息发送到控制台的用户的有效用户标识作为每个控制台输出消息的前缀。 仅标记发送到控制台的输出,而发送到充当控制台的设备的任何输出都不是。
Swcons 命令和 奇孔 命令都可以用于启用和禁用控制台输出标记,并对上述控制台输出日志记录中所提到的值的持久性提供相同的警告。
控制台输出标记详细程度值限制为 0 到 9 之间。 任何大于 0 的值都会导致对所有控制台输出进行标记。
控制台特殊文件限制
在某些情况下,与控制台的连接丢失时,错误输入/输出 (EIO) 错误受到限制。 控制台写入功能所产生的 EIO 错误受到限制,因为在连接到调制解调器的 蒂 设备断开连接时,将标记流文件。 所有对控制台的写操作都将重定向到控制台指向的位置,并且对文件描述符的写操作将返回 EIO 错误。 这些 EIO 错误将持续到进程重新打开控制台为止。
文件
| 项 | 描述 |
|---|---|
| /dev/null | 提供对空设备的访问权。 |