歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> SMF常規任務的使用

SMF常規任務的使用

日期:2017/3/3 15:23:52   编辑:Unix基礎知識

常規任務

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 相似的某些其他操作系統的缺省引導模式相似。詳細的引導過程如下所示:

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)。因此,禁用第一個服務已使得第二個服務無法運行。

Copyright © Linux教程網 All Rights Reserved