科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道Solaris服务管理工具SMF常规任务使用

Solaris服务管理工具SMF常规任务使用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

请注意,svcadm仅用于SMF服务,由rc脚本控制的传统服务与在早期发行版中的工作方式相同。与启用和禁用服务一样,不应该使用 svcadm 控制由 rc 脚本控制的服务;这些服务将始终按早期发行版中的方式工作。

来源:TT服务器 2008年7月15日

关键字: 操作系统 服务器 SMF Solaris

  • 评论
  • 分享微博
  • 分享邮件

  常规任务

  SMF是Solaris中一项特别显著的更改,因为它影响了管理模型。因此,尽管我们鼓励您阅读有关 SMF 功能的详细信息(请参见以下“详细信息”部分),但您可能还是希望从学习如何执行一些常规系统管理任务开始。

  ◆启用和禁用服务

  在Solaris 10之前的版本中,没有一个很好的方法来永久禁用Solaris中的服务。常用方法是将相应的rc脚本重命名为不再执行的名称,但在下一次系统升级后此更改将会失效。此外,基于inetd的服务是通过一种完全不同的方法(即编辑配置文件)启用和禁用的。在SMF下,可以使用svcadm(1M)命令配置这两种类型的服务,并且在计算机升级后这些更改将持续有效。以下是对启用和禁用某些服务的方式的比较:

  旧方法:mv /etc/rc2.d/S75cron /etc/rc2.d/x.S75cron

  SMF 方法:svcadm disable system/cron:default

  旧方法:编辑 /etc/inet/inetd.conf,将 finger 行取消注释

  SMF 方法:svcadm enable network/finger:default

  在上述示例中,svcadm 的最后一个参数是服务的 FMRI。

  请注意,svcadm仅用于SMF服务,由rc脚本控制的传统服务与在早期发行版中的工作方式相同。

  ◆停止、启动和重新启动服务

  过去,服务已由引导时运行的rc脚本启动,并通过 start 参数运行。一些rc脚本提供了stop选项,少数rc脚本还允许使用restart。在 SMF 中,这些任务都是通过svcadm(1M)命令完成的:   

  旧方法:/etc/init.d/sshd stop

  SMF 方法:svcadm disable -t network/ssh:default

  旧方法:/etc/init.d/sshd start

  SMF 方法:svcadm enable -t network/ssh:default

  旧方法:/etc/init.d/sshd stop; /etc/init.d/sshd start

  SMF 方法:svcadm restart network/ssh:default

  旧方法:kill -HUP `cat /var/run/sshd.pid`

  SMF 方法:svcadm refresh network/ssh:default

  svcadm enable 和 svcadm disable 的 "-t" 选项表示所请求的操作应该是临时的 (temporary),它不会影响此服务是否会在系统下一次引导时启动。这与上述“启用和禁用服务”示例形成了对比。

  与启用和禁用服务一样,不应该使用 svcadm 控制由 rc 脚本控制的服务;这些服务将始终按早期发行版中的方式工作。

  ◆观察引导过程

  如“显著的更改”部分所述,在缺省情况下,引导过程与早期的 Solaris 发行版相比要精简得多。这样就减少了不能提供有价值信息的“无用消息”,这些“无用消息”可能会导致引导期间发生的任何实际问题不容易被发现。

  已添加一些新的引导选项,以控制引导的详细程度。您可能会发现一个特别有用的选项 "-m verbose",该选项在每个服务尝试启动时打印一行信息。这与基于 Unix 和与 Unix 相似的某些其他操作系统的缺省引导模式相似。详细的引导过程如下所示:

  {1} ok boot -m verbose

  Rebooting with command: boot -m verbose

  Boot device: /pci@1c,600000/scsi@2/disk@0,0:aFile and args: -m verbose

  SunOS Release 5.10 Version Generic 64-bit

  Copyright 1983-2004 Sun Microsystems, Inc. All rights reserved.

  Use is subject to license terms.

  [ network/pfil:default starting (pfil) ]

  [ network/loopback:default starting (Loopback network interface) ]

  [ system/filesystem/root:default starting (Root filesystem mount) ]

  Oct 18 13:53:02/13: system start time was Mon Oct 18 13:52:57 2004

  [ network/physical:default starting (Physical network interfaces) ]

  [ system/filesystem/usr:default starting (/usr and / mounted read/write) ]

  ( more service messages elided )

  [ system/filesystem/local:default starting (Local filesystem mounts) ]

  [ network/ntp:default starting (network time protocol (NTP)) ]

  [ system/utmp:default starting (utmpx monitoring) ]

  [ system/filesystem/local:default starting (Local filesystem mounts) ]

  [ system/console-login:default starting (Console login) ]

  demobox console login: checking ufs filesystems

  /dev/rdsk/c0t0d0s7: is logging.

  Oct 18 13:53:14/50: system/system-log:default starting

  Oct 18 13:53:14/51: network/inetd:default starting

  Oct 18 13:53:14/52: system/cron:default starting

  ( more service messages elided )

  服务启动消息的顺序在每次引导时可能会有所不同,因为 SMF 将按照服务的相关性关系并行启动这些服务。

  如果服务无法成功启动,则除了打印启动消息之外,还会打印警告消息。以下是 NTP 服务无法启动的一个示例:

  [ system/filesystem/local:default starting (Local filesystem mounts) ]

  [ network/ntp:default starting (network time protocol (NTP)) ]

  Oct 25 13:58:42/49 ERROR: svc:/network/ntp:default:

  Method "/lib/svc/method/xntp" failed with exit status 96.

  Oct 25 13:58:42 svc.startd[4]: svc:/network/ntp:default:

  Method "/lib/svc/method/xntp" failed with exit status 96.

  [ network/ntp:default misconfigured (see ’svcs -x’ for details) ]

  [ system/utmp:default starting (utmpx monitoring) ]

  ( more service messages elided )

  前两条错误消息在正常引导和详细引导期间都会显示;最后一条错误消息 ("network/ntp:default misconfigured ...") 仅在详细引导期间显示。

  ◆发现故障

  Solaris 尚未提供一个全面的用于查找系统服务问题的方法。目前存在一些可帮助捕获并诊断这些问题的解决方案,包括使用 coreadm(1M) 命令记录到特定于站点的监视脚本,以及 Sun Cluster 等综合性产品。新的 svcs(1) 命令包含一个“解释”选项 ("svcs -x"),可打印出有关未运行服务的详细消息(由解决方案驱动)。svcs -x 将显示服务失败的时间和原因,提供获取此问题详细信息的方式,并列出受此问题影响的其他服务。

  继续来看一下无法启动的 NTP 服务的示例:

  # svcs -x

  svc:/network/ntp:default (Network Time Protocol (NTP).)

  State: maintenance since Mon Oct 18 13:58:42 2004

  Reason: Start method exited with $SMF_EXIT_ERR_CONFIG.

  See: http://sun.com/msg/SMF-8000-KS

  See: ntpq(1M)

  See: ntpdate(1M)

  See: xntpd(1M)

  Impact: 0 services are not running.

  NTP 服务已被置于维护模式,因为启动脚本指示该服务的配置存在问题。有关服务故障的详细信息,请参见 /var/svc/log 目录(或 /etc/svc/volatile 目录)中该服务的日志文件。日志文件名基于简短形式的 FMRI,将 "/" 替换为 "-"。因此,svc:/network/ntp:default 服务的日志文件为 /var/svc/log/network-ntp:default.log。通过此日志文件可以快速得出结论,即 NTP 守护进程的配置文件 /etc/inet/ntp.conf 已被删除。

  以下是另一个示例,显示了 SMF 可以跟踪相关性,并指出与禁用的服务相关的问题。在此示例中,我们使用 "-v" 选项来查看受影响的服务的列表。

  # svcs -x -v

  svc:/application/print/server:default (LP Print Service)

  State: disabled since Mon Oct 18 16:17:27 2004

  Reason: Disabled by an administrator.

  See: http://sun.com/msg/SMF-8000-05

  See: man -M /usr/share/man -s 1M lpsched

  Impact: 1 service is not running:

  svc:/application/print/rfc1179:default

  在以上示例中,已明确禁用了 application/print/server:default 服务,但未禁用依赖于该服务的另一个服务 (application/print/rfc1179:default)。因此,禁用第一个服务已使得第二个服务无法运行。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章