◆观察服务 在早期版本的 Solaris 中,查看可用服务的唯一方法是使用 ps(1) 命令,并列出系统上所有的活动进程,然后查看与服务应用程序的名称相匹配的进程名称 。遗憾的是,由于大多数系统都有许多进程,并且每次发行新版本的 Solaris 以及添加其他软件包时都会引入新服务,因此使用此方法进行跟踪非常困难 。如今的许多服务已不再作为单个进程执行,这使得情况更加复杂 。某些服务作为一系列进程或多线程进程执行,或者同时以这两种方式执行 。
使用新的 svcs(1) 命令,可以更容易地观察系统服务的状态 。"-p" 选项可显示与服务关联的所有进程:
% svcs -p network/smtp:sendmail
STATE STIME FMRI
online 18:20:30 svc:/network/smtp:sendmail
18:20:30 655 sendmail
18:20:30 657 sendmail
% ps -fp 655,657
【Solaris服务管理工具SMF维护】UID PID PPID C STIME TTY TIME CMD
root 655 1 0 18:20:30 ? 0:01 /usr/lib/sendmail -bd -q15m
smmsp 657 1 0 18:20:30 ? 0:00 /usr/lib/sendmail -Ac -q15m
"-d" 选项可显示此服务所依赖的其他服务,而 "-D" 选项可显示依赖于此服务的其他服务:
% svcs -d network/smtp:sendmail
STATE STIME FMRI
online 18:20:14 svc:/system/identity:domain
online 18:20:26 svc:/network/service:default
online 18:20:27 svc:/system/filesystem/local:default
online 18:20:27 svc:/milestone/name-services:default
online 18:20:27 svc:/system/system-log:default
online 18:20:30 svc:/system/filesystem/autofs:default
% svcs -D network/smtp:sendmail
STATE STIME FMRI
online 18:20:32 svc:/milestone/multi-user:default
我们可以看到,sendmail 要求在运行之前先运行网络服务、本地文件系统服务、名称服务、系统日志守护进程以及自动安装守护进程,并且 sendmail 自身必须在到达多用户重大事件之前运行 。服务启动时间(STIME 列)表明已遵循这些相关性 。
◆更改运行级别
SMF 引入了重大事件 (milestone)的概念,它代替了传统的运行级别概念 。运行级别对计算机上运行的一组服务进行了基本描述,这些服务通常分为一个用户登录到计算机控制台所需的服务(运行级别 S),以及多个用户登录到计算机所需的服务(运行级别 2 和 3) 。这些系统状态在 SMF 中表示为重大事件,重大事件是代表一组其他服务的稳定服务 。"svcs -d" 可用于查看必须在到达重大事件之前运行的服务 。
svCADm(1M) 现在是设置系统缺省运行级别的首选方法 。此方法是使用 milestone 子命令和有效重大事件的 FMRI 完成的:
旧方法:编辑 /etc/inittab
SMF 方法:svcadm milestone -d milestone/single-user:default
"-d" 选项表示缺省 (default) 重大事件应该设置为指定的 FMRI 。如果不使用 "-d",则 "svcadm milestone" 会立即将系统转换到指定的重大事件 。
引导过程已更新为可以识别重大事件 。除了传统的 "boot -s"(引导到单用户模式)之外,现在还可以通过 "boot -m milestone=" 引导到指定的重大事件 。可以是 "single-user"、"multi-user" 或 "multi-user-server",以及特殊的重大事件 "all"(所有已启用的联机服务)和 "none"(无任何服务) 。"none" 重大事件对于修复在引导过程初期发生故障的系统可能非常有用 。
引导到单用户重大事件(使用 "-m milestone=single-user")和旧的 "boot -s" 略有不同 。如果系统已明确引导到某个重大事件,则退出控制台管理 shell 时不会像 "boot -s" 一样将系统转换到多用户模式 。要在运行 "boot -m milestone=single-user" 之后转到多用户模式,请使用命令 "svCADm milestone milestone/multi-user-server:default" 。
◆启用、禁用和监视传统服务
一般说来,由传统 rc 脚本启动的服务(也称为传统服务)将继续以原始方式工作 。这些服务将在 svcs(1) 的输出中显示,同时还显示 FMRI(基于服务 rc 脚本的路径名),但它们不受 svcadm(1M) 控制 。应该通过直接运行 rc 脚本停止或启动这些服务 。
如“显著的更改部分所述,与早期版本的 Solaris 不同,rc 脚本可能不会在引导过程中的同一时刻运行 。特别是,必须在 Solaris 提供的某些 rc 脚本之前运行的脚本可能会出现问题 。但是,绝大多数脚本都应该可以继续工作,而不会出现任何问题 。
◆将新服务添加到 inetd.conf
Internet 服务守护进程 inetd(1M) 已重新编写为 SMF 的一部分 。它将所有配置数据都存储在 SMF 数据库(而不是 /etc/inet/inetd.conf)中,从而允许使用 SMF 工具控制和观察基于 inetd 的服务 。大多数 Solaris 随附的基于 inetd 的服务在 inetd.conf 中不再有任何条目 。为了对尚未转换为 SMF 的服务提供兼容性,仍然可以使用惯用的语法将条目添加到 inetd.conf 中,而新的 inetconv(1M) 命令可将新服务转换为 SMF 服务 。inetconv 应该始终在编辑 /etc/inet/inetd.conf 之后运行;运行该命令时可以不使用任何参数 。
- 云计算服务如何保护用户的数据?
- 快手小店卖货服务费是多少 快手小店服务费是多少
- 退役军人服务站是做什么
- win7电脑提示group policy client服务未能登录如何解决?解决方法说明
- 微服务限流的意义
- win7如何禁用offline files服务 禁用offline files服务操作流程一览
- 订阅号可以升级为服务号吗
- 苹果iphone6s plus定位服务是什么?苹果iphone6s开启定位服务的方法
- 苹果游戏中心iCloud等服务遇故障 目前问题仍在持续中
- 小米服务框架有什么用
