如何解决 Solaris 10 SMF(服务管理工具)相关问题

服务管理工具最初是在 Solaris 10 中引入的,用于管理系统和应用程序服务。
这取代了旧的 init 脚本和其他启动脚本。
这篇文章讨论了一些基本的故障排除技术来解决 SMF(服务管理工具)相关问题。

服务依赖

如果服务启动失败,请检查服务实例的状态。
如果服务处于维护模式,请使用:

# svcs -xv

这将显示处于维护模式的服务。
我们可以检查它们处于维护模式的原因,解决问题后,我们可以清除维护模式的服务:

# svcadm clear

服务可能依赖于其他服务。
除非这些服务不在线,否则依赖的服务不会启动。
检查依赖服务(我依赖的服务)

# svcs -d /system/filesystem/local
STATE          STIME    FMRI
online         20:08:17 svc:/system/filesystem/minimal:default
online         20:08:19 svc:/milestone/single-user:default

要检查哪些服务依赖于特定服务(依赖于我的服务):

# svcs -D /system/filesystem/local
online         20:08:19 svc:/network/shares/group:default
online         20:08:19 svc:/system/cron:default
online         20:08:19 svc:/application/opengl/ogl-select:default
online         20:08:20 svc:/network/nfs/status:default
......

日志文件、列表和方法

  1. SMF 日志文件可以在以下位置找到:
/var/svc/log
/etc/svc/volatile
  1. 可以在此处找到 SMF 列表和方法:
/var/svc/manifest/*
/lib/svc/method/*
  1. 要查看给定服务使用的日志文件位置:
# svcs -l| grep logfile
on  it road.com

守护进程、配置和恢复

SMF 的主要守护进程是 svc.startd 和 svc.configd 。
在启动时,内核将启动 init,它依次启动 svc.startd 和 svc.configd。
后一个守护进程 (svc.configd) 将从 /etc/svc/repository.db 中的存储库读取信息,然后 svc.startd 使用这些信息来启动服务。
如果启动系统时出现问题,我们应该尝试:

ok> boot -m milestone=none

然后尝试通过运行来达到里程碑“单用户”:

# svcadm milestone svc:/milestone/single-user:default

在服务启动时观察它们,查看屏幕上的所有消息并查阅错误日志以获取更多信息。

如果存储库损坏,我们可能需要从以前保存的副本中恢复,或者重新设定种子。

# /lib/svc/bin/restore_repository

该脚本将指导我们完成整个过程。

日期:2020-09-17 00:15:17 来源:oir作者:oir