solaris - 10(200)(7)

2019-02-20 21:00

enabled online svc:/network/rpc/mdcomm:default enabled online svc:/network/rpc/meta:default

enabled online svc:/network/rpc/metamed:default enabled online svc:/network/rpc/metamh:default enabled online svc:/network/rpc/gss:default

disabled disabled svc:/network/rpc/ocfserv:default enabled online svc:/network/rpc/smserver:default disabled disabled svc:/network/rpc/rex:default enabled online svc:/network/rpc/rstat:default enabled online svc:/network/rpc/rusers:default disabled disabled svc:/network/rpc/spray:default ...

查看telnet服务的状态:

-bash-3.00# inetadm |grep telnet

enabled online svc:/network/telnet:default 禁用telnet服务

-bash-3.00# inetadm -d telnet 查看telnet服务的状态:

-bash-3.00# inetadm |grep telnet

disabled disabled svc:/network/telnet:default

SMF兼容旧的rc机制,solaris 10 2006 update 1版本中有些服务仍然使用了旧的rc机制,以运行级别三的服务为例,尚有以下服务未使用SMF: -bash-3.00# ls -l /etc/rc3.d total 30

-rw-r--r-- 1 root sys 1285 Jan 22 2005 README

-rwxr--r-- 6 root sys 474 Jan 22 2005 S16boot.server -rwxr--r-- 6 root sys 1649 Jan 8 2005 S50apache -rwxr-xr-x 1 root sys 491 Jan 8 2005 S75seaport -rwxr--r-- 6 root sys 685 Jan 22 2005 S76snmpdx -rwxr--r-- 6 root sys 1125 Jan 22 2005 S77dmi -rwxr--r-- 6 root sys 512 Jan 22 2005 S81volmgt -rwxr-xr-x 5 root sys 2225 Jan 8 2005 S82initsma -rwxr--r-- 5 root sys 824 May 27 2004 S84appserv -rwxr--r-- 6 root sys 324 Apr 20 2005 S90samba 其中S90samba,S50apache,S84appserv的存在表明Samba, Apache, Sun Application Server服务已启用。

总结

SMF提供了一个健壮的、可管理的后台服务管理机制,它使系统管理更为方便。在下一篇里作者将结合实例讨论将创建SMF服务的方法和步骤。

相关的手册

smf(5), svcadm(1M), svccfg(1M), inetadm(1M), svcs(1), svcprop(1), inetconv(1M) 相关的文件和目录

/etc/svc -- 存放SMF服务配置库

/var/svc/manifest -- 存放SMF服务manifest xml文件 /var/svc/profile -- 存放SMF服务profile xml文件 /var/svc/log -- 存放SMF服务状态变化日志 /lib/svc/method -- 存放SMF服务启动脚本

/lib/svc/seed -- 存放SMF服务配置库的出厂设置

参考信息

SMF快速入门

31

http://www.sun.com/bigadmin/content/selfheal/smf-quickstart.html 面向开发者的SMF介绍

http://www.sun.com/bigadmin/content/selfheal/sdev_intro.html 配置JBoss为SMF服务的例子

http://www.sun.com/bigadmin/content/submitted/config_smf.html 配置Postfix为SMF服务的例子

http://www.petertribble.co.uk/Solaris/smf.html Solaris管理员手册:

System Administration Guide: Basic Administration Chapter 14 Managing Services (Overview),Chapter 15 Managing Services (Tasks)

新增SMF服务

在Solaris 10中创建SMF服务的步骤 1. 编写启动脚本

2. 编写manifest, profile

3. 导入到服务库中, svcadm import your_manifest.xml 服务定义:profile+manifest

SMF服务用XML文件定义。一种方式是先定义服务名称、启动/停止方法、依赖关系、属性等成为mainfest的信息,然后定义服务的实例profile。这种方式主要为了支持多实例的服务。另外一种是只定义manifest,这方便了那些单实例服务的定义。manifest和profile的文件的DTD相同,该DTD在Solaris系统的/usr/share/lib/xml/dtd/service_bundle.dtd.1文件中描述。

定义manifest

定义SMF服务manifest需要编写一个xml文件,大致结构是

name='xxx' type='service' version='1'>

type='method' name='start'

exec='/lib/svc/method/sshd start' timeout_seconds='60'/>

service_bundle是根元素,type='manifest'表示该文件定义manifest,type='profile'则表示该文件定义profile,name属性的值应该和该服务软件包名称一致。 service_bundle可以包含一个或多个service元素,因此可以在一个manifest文件中定义多个服务。但为了便于维护不相关的服务通常定义在不同的文件中。service元素用来定义服务。type属性值应该为service。name属性是该服务的名称,不能和其它服务名重复。dependency用来定义该服务

32

依赖其它服务;exec_method是该服务启动/停止/刷新时需要执行的方法;property_group定义服务的扩展属性;template主要提供该服务描述简要描述,其文档的链接或使用手册。

#TODO: add ssh manifest as exmaple 定义profile

定义profile相对简单,通常都只是在manifest的基础上定义服务的实例。大致结构如下:

服务profile定义同样以service_bundle元素为根元素,其type属性的值固定为\。需要定义实例的服务用service元素表示,并名称、版本、类型要和manifest中定义的一致。服务实例在service元素的instance子元素定义。一个服务可以定义多个实例。instance元素中可以重新定义dependency,exec_method,property_group,template来覆盖manifest中该服务的设置。通常只需要定义实例名称和是否需要启用即可。 #TODO: add ssh profile as exmaple

依赖关系:

SMF中服务支持依赖关系,在服务的manifest文件中service元素的子元素dependency用来定义依赖。大致结构如下:

grouping='require_all|require_any|optional_all|exclude_all' restart_on='none|error|restart|refresh' type='service|path'>

该元素的name属性定义该依赖的名称,type属性值为service表示该服务依赖于其它服务是否运行,值为path则表示依赖某个文件是否存在。grouping属性表示该服务有多依赖情形时依赖满足的规则。require_all表示该组依赖都必须满足;require_any表示该服务的诸多依赖中至少有一个满足;optional_all表示依赖是可选的;exclude_all表示服务的依赖不满足时满足。服务运行后,如果它所依赖的服务终止或刷新,那么SMF将根据导致这个状态改变的原因(通常是软硬件故障和软硬件故障)和restart_on属性的值来决定该服务本身是否需停止或重启。其规则如下表

| restart_on的值

事件 | none error restart refresh -------------------+------------------------------ 软硬件故障 | 否 是 是 是 非故障终止 | 否 否 是 是 刷新 | 否 否 否 是

简单地说,如果restart_on为none则不管什么原因引起的所依赖服务终止、刷新都不会终止或刷新服务本身;如果restart_on为error则仅当软硬件故障原因引起的所依赖服务终止、刷新都才会终止或刷新服务本身;如果restart_on为restart则软硬件故障或非故障终止都会终止或刷新服务本身;如果restart_on为refresh则不管什么原因引起的所依赖服务终止或刷新都会终止或刷新服务本身;

smf对旧的rc机制的支持,(以solaris 10 update 1为实例说明)

在Solaris 10中增加smf服务的步骤 1. 编写启动脚本

2. 编写manifest, profile

3. 导入到服务库中, svcadm import your_manifest.xml

33

总结:smf优点

smf和传统的后台进程运行机制的比较 运行级别<-> milestone

服务的依赖关系,旧机制通过安排服务启动顺序进行有限的支持,smf可以显式地定义服务的依赖关系

相关的手册 smf(5)

相关的文件和目录

/etc/svc/*; /var/svc/*; /lib/svc/*

参考信息

SMF快速入门

http://www.sun.com/bigadmin/content/selfheal/smf-quickstart.html 面向开发者的SMF介绍

http://www.sun.com/bigadmin/content/selfheal/sdev_intro.html 配置JBoss为SMF服务的例子

http://www.sun.com/bigadmin/content/submitted/config_smf.html 配置Postfix为SMF服务的例子

http://www.petertribble.co.uk/Solaris/smf.html

Solaris管理员手册:

System Administration Guide: Basic Administration Chapter 14 Managing Services (Overview),Chapter 15 Managing Services (Tasks)

0:关闭Solaris操作环境和显示boot PROM ok提示符用于安全的关闭系统电源。 S or s:运行所有文件系统都被装配和可理解的单用户模式 1:要求系统运行在单用户管理状态,并且所有文件系统都可用

2:要求系统运行多用户操作。多个用户可以访问系统。所有系统守护进程都运行,除了NFS服务器的守护进程

3:要求系统运行多用户操作,并且NFS资源共享可用。这是在/etc/inittab中指定的默认运行级

4:这一级别还没有起用

5:停掉Solaris操作环境,并且关闭系统电源

6:停掉系统到0运行级,然后重新启动多用户操作,或者在/etc/inittab中指定默认的运行级。

决定系统当前的运行级

要决定一个系统当前的运行级,使用命令: # who –r

. run level 3 Jun 9 08:30 3 0 S

更改运行级别:

运行级别是参考init状态的因为init命令能够转换运行级别。Init命令能够达到svc.startd要求的运行级别。

你能使用init命令手工的初始化运行级别的转化。你也能够通过命令shutdown halt reboot poweroff来改变运行级别。也可以通过svcadm命令,在系统启动的时候选择合适的里程碑达到运行级别的转化。

标示系统的启动阶段

总的来说当系统启动的时候,PROM监视着POST的运行检测系统的硬件和内存。如果没有错误发生,则开始auto-boot?参数,如果设置为true则,系统开始启动过程。 全部的启动过程包括下面描述的四个阶段:

34

Boot PROM阶段 启动程序阶段 内核初始化阶段 init阶段

Svc.startd阶段

boot PROM 阶段 PROM运行POST

boot PROM固件运行开机自检程序去检测系统的硬件和内存。

PROM显示系统识别标题,(比如模式类型,内存数量,PROM版本号,PROM序列号,网卡的mac地址和hostID)

boot决定启动设备读系统参数boot-device

boot PROM读默认启动设备上磁盘label定位的0扇区。 boot PROM发现boot程序在默认启动设备的PORM中 boot定位在启动设备上的bootblk上

boot从位于启动设备上的bootblk读入内存

启动程序阶段

bootblk读入第二启动程序,ufsboot从启动设备进入内存

ufsboot是通过Solaris实用程序installboot安装记录在bootblk中的

ufsboot定位和读入适当的两个部分的内核

内核是由两个片静态核心叫做genunix和unix组成的。Genunix是无约束平台的内核文件,而unix是指定指定平台的内核文件。

当ufsboot读入他们这两个文件到内存的时候,他们在正在运行的内核中是组合着的。

在32位系统上,两个部分的内核是位于目录/platform/’uname –m’/kernel中的

在64位系统上,两个部分的内核是位于目录/platform/’uname –m’/kernel/sparcv9中的

solaris10 sparc只运行64位。

Kernel初始化阶段

Kernel读配置文件/etc/system

Kernel初始化自己然后开始加载modules kernel使用ufsboot去读文件。当他读入足够的模块去装配root文件系统,他不镜像ufsboot程序。并且继续

kernel启动/etc/init进程。

SunOS kernel由小的,静态的core(genunix和unix)和许多动态可承载的内核模块组成。 modules以由设备驱动,文件系统,流,也有其他类型的用于在系统中的指定任务。

包含kernel代表性的内核模块位于目录/kernel和/usr/kernel。依赖于平台的模块则位于/platform/’uname –m’/kernel和/platform/’uname –I’/kernel目录 下列描述模块子目录的类型包含在/kernel,/usr/kernel,/platform/’uname –m’/kernel或者/platform/’uname –I’/kernel目录 Drv/sparcv9 设备驱动

Exec/sparcv9 处理文件格式 Fs/sparcv9 文件系统类型

Misc/ sparcv9混合模块 比如:usb Sched/ sparcv9 计划类

Stromd/ sparcv9 字符流模式

35


solaris - 10(200)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:-信息提示

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: