在 Oracle® Solaris 11.2 中管理系统服务

退出打印视图

更新时间: 2014 年 7 月
 
 

服务重启程序

每个 SMF 服务实例都由一个重启程序管理。重启程序将检索实例配置并提供执行环境。有关所有重启程序的通用信息,请参见 smf_restarter(5)

主重启程序守护进程

svc.startd 守护进程是 SMF 的主重启程序守护进程,也是所有服务实例的缺省重启程序svc.startd 守护进程用于管理所有服务实例及其相关项的状态。如果已满足相关项并且实例已进入联机状态,则主重启程序会调用其他实例的 start 方法或者引导委托重启程序调用 start 方法。如果不再满足服务实例的相关项,主重启程序将停止该实例。重启程序会在实例出现错误时尝试重新启动该实例。由于实例只有在满足其所有的相关项才能够进入联机状态,因此实例的相关项可以帮助确定该实例的重新启动行为。对每个相关项声明设置的属性会定义该相关项是否是必需的,以及在哪些情况下相关项重新启动时,实例也重新启动。

对于其他任务,svc.startd 守护进程在相应的运行级别启动相应的 /etc/rc*.d 脚本,此工作之前由 init 完成。

下面的示例显示 svc.startdnetwork/ipmp:default 服务实例的重启程序。此示例省略了其他输出内容。

$ svcs -l ipmp:default
restarter   svc:/system/svc/restarter:default

如果 restarter 属性为空或者设置为 svc:/system/svc/restarter:default,则服务实例由 svc.startd 管理。有关 svc.startd 守护进程的更多信息,请参见 svc.startd(1M) 手册页。

委托的重启程序

有些服务在启动时具有一组共同的行为。委托的重启程序可以为这些服务提供特定的执行环境和特定于应用程序的重启行为。

委托的重启程序的示例是 inetd,它能够按需启动 Internet 服务,而不是使服务始终保持运行。inetd 重启程序为其服务实例提供由作为输入和输出文件描述符的网络连接构成的环境。有关 inetd 守护进程的更多信息,请参见 inetd(1M) 手册页。下面的示例显示 inetdcups/in-lpd:default 服务实例的重启程序。此示例省略了其他输出内容。

$ svcs -l cups/in-lpd:default
restarter   svc:/network/inetd:default

restarter 属性指定的委托重启程序负责在该重启程序可用时管理服务实例。