虽然 SAF 提供了用于管理任何将来或第三方端口监视器的通用方法,但是在 Oracle Solaris 发行版中仅实现了两个端口监视器:ttymon 和 listen。
ttymon 端口监视器基于 STREAMS,可执行以下操作:
监视端口
设置终端模式、波特率和线路规程
调用登录进程
ttymon 端口监视器为用户提供的服务与 getty 端口监视器在 SunOS 4.1 软件的早期版本中提供的服务相同。
ttymon 端口监视器在 SAC 程序下运行,并且是使用 sacadm 命令配置的。ttymon 的每个实例可以监视多个端口。这些端口在端口监视器的管理文件中指定。管理文件是通过使用 pmadm 和 ttyadm 命令配置的。
控制台服务既不由服务访问控制器 (Service Access Controller, SAC) 管理,也不由任何显式的 ttymon 管理文件管理。ttymon 调用由 SMF 管理。因此,无法再通过向 /etc/inittab 文件中添加项来调用 ttymon。类型为 application、名称为 ttymon 的属性组已添加到 SMF 服务 svc:/system/console-login:default 中。此属性组内的属性由方法脚本 /lib/svc/method/console-login 使用。此脚本将属性值用作 ttymon 调用的参数。通常,如果这些值为空,或者如果没有为任一属性定义值,则不会将值用于 ttymon。但是,如果 ttymon 设备值为空或者未设置,则 /dev/console 将用作缺省值以便 ttymon 可以运行。
以下属性在 SMF 服务 svc:/system/console-login:default 下可用:
指定 nohangup 属性。如果设置为 true,则在设置缺省或指定的速度之前,不要通过将线路速度设置为零来强制线路挂起。
指定控制台端口的提示字符串。
指定控制台的缺省终端类型。
指定控制台设备。
指定 /etc/ttydefs 线路中的 TTY 标签。
ttymon 管理文件由 sacadm 和 pmadm 命令以及 ttyadm 命令更新。ttyadm 命令设置特定于 ttymon 的信息的格式并将其写入标准输出,从而提供一种向 sacadm 和 pmadm 命令呈现已设置格式的、特定于 ttymon 的数据的方法。
因此,ttyadm 命令不会直接管理 ttymon。ttyadm 命令是对通用管理命令 sacadm 和 pmadm 的补充。有关更多信息,请参见 ttyadm(1M) 手册页。
listen 端口监视器在 SAC 下运行,可执行以下操作:
监视网络中的服务请求
在请求到达时接受请求
作为对那些服务请求的响应,调用服务器
listen 端口监视器是通过使用 sacadm 命令配置的。listen 的每个实例可以提供多个服务。这些服务在端口监视器的管理文件中指定。此管理文件是通过使用 pmadm 和 nlsadmin 命令配置的。
网络侦听器进程可以用于符合传输层接口 (Transport Layer Interface, TLI) 规范的任何面向连接的传输提供者。在 Oracle Solaris OS 中,listen 端口监视器可以提供 inetd 服务未提供的其他网络服务。
listen 端口监视器的管理文件由 sacadm 和 pmadm 命令以及 nlsadmin 命令更新。nlsadmin 命令设置特定于 listen 的信息的格式并将其写入标准输出,从而提供一种向 sacadm 和 pmadm 命令呈现已设置格式的、特定于 listen 的数据的方法。
因此,nlsadmin 命令不会直接管理 listen。该命令是对通用管理命令 sacadm 和 pmadm 的补充。
单独配置的每个网络可以具有至少一个与之关联的网络侦听器进程实例。nlsadmin 命令控制 listen 端口监视器的操作状态。
nlsadmin 命令可以为给定的网络建立 listen 端口监视器,配置该端口监视器的特定属性以及对监视器执行 start 和 kill 操作。nlsadmin 命令还可以对计算机上的 listen 端口监视器进行报告。
有关更多信息,请参见 nlsadmin(1M) 手册页。