三、SMF和系统启动的关系
1. SMF和系统启动的关系如图1
图1 SMF和系统启动的关系
SMF 提供用来引导系统的新方法。如:
(1)有另外一个与 all 里程碑相关联的系统状态。此里程碑不同于多用户 init 状态,因为 SMF 只能识别定义的服务。如果您添加了服务(如第三方产品),那么,除非您使用下面的命令,否则它们可能不会自动重新启动:
ok boot -m milestone=all
(2)如果使用某个里程碑引导系统,一定要同时使用 -s 选项。如果未包括 -s,则系统将停留在引导系统时所处的里程碑状态。通过按 Ctrl-D,系统将不会自动进入多用户状态。可以使用以下命令进入多用户状态:
# svCADm milestone all
(3)在引导系统时,可以选择使用 verbose 选项来查看更多的消息。缺省情况下,系统将不显示这些消息。要在详细模式下引导,请使用以下命令:
ok boot -mverbose
2. Solaris 10的运行级
Solaris 10有八个运行级,表2对其进行了说明。在 /etc/inittab 文件中,缺省的运行级指定为运行级 3。
表2 Solaris 10的运行级
SMFde 组成要素
SMF包含两个进程、服务定义的manifest和profile、服务配置库和命令行管理工具等内容:
1. svc.startd, svc.configd
svc.startd是SMF的主要进程,它根据系统管理员指令或者系统故障或应用故障来启动、停止、重启服务。svc.configd是负责管理服务配置库的进程。
2. manifest, profile
服务和服务的实例可以用xml文件定义,manifest定义服务,profile定义服务实例,这些xml文件通常存放在/var/svc目录下。
3. repository(sqlite db)
服务配置库存放在/etc/svc/repository.db文件中。服务配置库实际上是一个sqlite的关系数据库,它存放了服务的定义、配置等信息。 /var/svc目录下的manifest和profile文件和/etc/svc/repository.db文件都包含了服务的定义、配置等信息,后者的信息是权威的。
4. CLI mgmt tool
命令行管理工具包括:svccfg, svcadm, svcprop, svcs, inetadm, inetconv, repoistory_restore。
到此为止笔者介绍了使用SMF来管理Solaris 系统服务的方法。
标签: