服务管理工具最初是在 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 ......
日志文件、列表和方法
- SMF 日志文件可以在以下位置找到:
/var/svc/log /etc/svc/volatile
- 可以在此处找到 SMF 列表和方法:
/var/svc/manifest/* /lib/svc/method/*
- 要查看给定服务使用的日志文件位置:
# 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