Solaris 10 基本用法之備忘錄

Solaris 10 改用 SMF 服務命令行管理工具來進行 Solaris 10 系統服務的管理,為了怕自己又忘記這些常用 command 的用法,只好貼上來備忘囉...

1. 用 svcs –a 來查看所有服務的狀態:

svcs 命令顯示服務實例的狀態(STATE)、開始時間(STIME)和 FMRI。每個服務的狀態都為下列狀態之一:
-- degraded-服務實例處於啟用狀態,但是以有限的功能運行。
-- disabled-服務實例處於禁用狀態且尚未運行。
-- legacy_run-傳統服務不由 SMF 進行管理,但是可查看服務。此狀態只能由傳統服務使用。
-- maintenance-服務實例遇到錯誤,必須由管理員解決。
-- offline-服務實例處於啟用狀態,但是尚未運行或者無法運行。
-- online-服務實例處於啟用狀態,並且已成功啟動。
-- uninitialized-此狀態是所有服務在配置經過讀取之前的初始狀態。

以下是常見服務的名稱 :
network svc:/milestone/network:default
sshd svc:/network/ssh:default
cron svc:/system/cron:default
automount svc:/system/filesystem/autofs:default
sendmail svc:/network/smtp:sendmail
nfs svc:/network/nfs/server:default
ntpd svc:/network/ntp:default
2. 用 svcs -v -x 檢查當前系統中的服務狀況,並自動診斷出服務出錯的原因。

3. 使用 | (管道符重定向)作更個性化的查找當前所有的服務狀態;例如:
# svcs |grep online 查看當前運行服務
# svcs |grep offline 查看當前停止服務
# svcs |grep ntp 查看 ntpd 服務狀態
4. 用 svcadm 來做 Service 的啟動、停止或重啟:
這裡用 ntpd 來做例子,如果要立刻停止或重啟服務,那麼可以使用 svcadm 的 -t 參數:
# svcadm disable -t network/ntp
(另一種下法是敲入完整的 FMRI 表示的服務名稱:
# svcadm disable -t svc:/network/ntp:default)
停止ntpd服務,等同于 /etc/init.d/ntpd stop
# svcadm enable -t network/ntp
啟動 ntpd 服務,等同于 /etc/init.d/ntpd start
# svcadm restart network/ntp
重啟(停止並啟動) ntpd 服務,等同于 /etc/init.d/ntpd stop; /etc/init.d/ntpd start
# svcadm refresh network/ntp
Relaod ntpd (重新讀取配置文件),等同于 kill -HUP `cat /var/run/ntpd.pid`

最後的小注記:新裝的系統中由於沒有建立系統 DNS 解析配置檔 /etc/resolv.conf 會導致系統dns client 服務啟動失敗,而 dns client 則是許多服務的依賴前置服務,包括 inetd、sshd、sendmail...等幾乎所有的網路服務,就導致整個Solaris 10 系統中的所有網路服務啟動失敗。記得要在安裝完系統之後手動建立與設定 /etc/resolv.conf 和 /etc/defaultrouter 兩個檔案)
2 Responses
  1. Vicky Says:

    應該不會吧....只要你在 /etc/nsswitch.conf 裡的 hosts 裡, 沒加到 dns, 系統就不會去查 DNS 的設定, 也就是說, 不會去讀 /etc/resolv.conf 的咚咚

    倒是 /etc/defaultrouter 沒設定的話, 就沒有 default routing 了....除非把 default routing 寫在 start up scripts 裡


  2. ㄏㄏ,因為這一台是用來做 DHCP 兼 DNS Server,所以我並不會將 /etc/nsswitch.conf 裡 hosts 的 dns 拿掉,結果在第一次裝完還沒加 /etc/resolc.conf 時才有這種問題。