您可能还会注意到,中止进程后进程会“拒绝中止 。例如:
# ps -fp `pgrep -d, sendmail`
UID PID PPID C STIME TTY TIME CMD
root 330 1 0 14:21:05 ? 0:00 /usr/lib/sendmail -bd -q15m
smmsp 331 1 0 14:21:05 ? 0:00 /usr/lib/sendmail -Ac -q15m
# pkill -9 sendmail
# ps -fp `pgrep -d, sendmail`
UID PID PPID C STIME TTY TIME CMD
root 530 1 0 14:51:02 ? 0:00 /usr/lib/sendmail -bd -q15m
smmsp 531 1 0 14:51:02 ? 0:00 /usr/lib/sendmail -Ac -q15m
初看起来,尽管使用了 kill -9,却似乎没有发生任何情况 。但是请注意,PID 是不同的,并且进程的启动时间已经更改;事实上,旧的 sendmail 进程确实已经中止 。
通过 SMF,Solaris 内核可以考虑服务、此服务的进程和其他服务(负责重新启动此服务)之间的关系 。此重新启动关系与 Sun 的新技术紧密集成,用于在 Solaris 上进行故障管理,从而允许 SMF 重新启动程序了解服务进程失败的原因是管理员错误、相关服务故障、软件错误还是根本的硬件故障 。只要在任何服务故障之后捕获到此信息,SMF 就会通知相应的重新启动程序,该程序将确定是通过将此服务置于维护模式来禁用服务(因为它看起来存在问题),还是自动重新启动该服务 。缺省的 SMF 重新启动程序 svc.startd 负责启动和重新启动 Solaris 系统上的大多数服务 。在以上示例中,svc.startd 注意到 sendmail 已中止,针对此情况记录了一条消息,并自动重新启动 sendmail 。
如果您要停止某个服务但不重新启动其进程,请使用 svCADm(1M) 命令(请参见以下“常规任务部分) 。另外请注意,并非所有的系统服务都已转为使用 SMF;属于这些传统服务的任何进程在中止后都不会重新启动 。
最后您可能会注意到,与以前的 Solaris 发行版相比,/etc/init.d 和 /etc/rc◆.d 目录以及 /etc/inittab 文件中的内容现在要少得多 。SMF 管理的服务不再使用 rc 脚本或 inittab 条目进行启动和关闭,因此与这些服务对应的脚本已被删除 。在将来的 Solaris 发行版中,SMF 将管理更多的服务,并且这些目录中的内容将会越来越少 。用于管理 ISV 提供或本地开发的服务的 rc 脚本和 inittab 条目将继续在引导时运行 。与推出 SMF 之前的情况不同,这些服务可能不会在引导过程中的同一时刻运行,但一定不会在引导过程之前运行,因此其非明确依赖的任何服务仍将可用 。
服务名称
Solaris 使用称为 FMRI(Fault Managed Resource IdentifIEr,故障管理资源标识符)的 URI 字符串来标识为其提供了高级故障和资源管理功能的系统对象 。SMF 所管理的服务被分配了前缀为方案名称 "svc" 的 FMRI 字符串,如以下的 Solaris 服务 syslogd(1M) 示例所示:
◆ svc://localhost/system/system-log:default
◆ svc:/system/system-log:default
◆ system/system-log:default
请注意,SMF 所使用的这些服务 FMRI 有以下三种表示方法:第一种是包含位置路径(如 "localhost")的绝对路径;第二种是相对于本地计算机的路径;第三种仅仅是省略了字符串前缀的服务标识符 。本文档其余部分所介绍的 SMF 管理员工具通常使用第三种形式来描述服务(因为假定这些服务作用于本地服务) 。可在多种资源上或跨计算机操作的其他管理工具可能使用其他形式来描述服务 。当前 Solaris 发行版中的 SMF 工具只能管理本地主机上的服务 。
由于 FMRI 字符串非常长,因此 SMF 工具允许使用缩写形式的 FMRI 。缩写必须具有唯一性,必须与服务名称的结尾部分相匹配(但 ":default" 可以省略),并且必须以 "/" 开头 。因此上述 FMRI 可以使用以下缩写:
◆ system-log:default
◆ system-log
使用这些缩写时应非常谨慎,因为可能会在包含相同子串的某一点添加新服务(如 "svc:/mysite/system-log:default") 。如果使用非唯一的缩写,SMF 工具将打印警告消息 。
推荐阅读
- Solaris 11 安装图解
- Open Solaris 2008.05版 初体验
- Solaris 8 配置并启动、登录服务器
- 基于Solaris 10的综合性虚拟化
- 虚拟化和开源是Solaris 10核心
- SUN 虚拟化-Solaris zone 配置实例
- 在Solaris8上安装SSH
- 使用libscf.so实现SMF服务refresh方法
- 用Solaris 10的SMF配置Tomcat为自动启动
- SUN Solaris 的用户管理二