solaris服務的操作
Solaris 服務管理器(Service Management Facility, SMF)是Solaris 10以及後續版本的Solaris操作系統當中采用的軟件服務管理工具。SMF按照服務的相關性來啟動、停止和管理服務,並兼容現有的管理習慣(如啟動腳 本等)。對於使用過Windows的讀者來說,SMF的功能類似於“控制面板”中的“服務”;對於使用過Linux和Unix的讀者來說,這個功能部分替 代了/etc/rc*.d中的啟動腳本和超級服務器inetd/xinetd的功能。
SMF特性簡介
當出現了管理錯誤、軟件缺陷或者是硬件缺陷導致服務程序異常中止的時候,SMF可以自動按照一定的次序重新啟動服務。
使用svcs命令可以查看所有的服務,而是用svcadm和svccfg命令可以管理所有的服務。使用svcs -p命令可以查看與本服務相關聯的其他服務。
通過服務快照設置可以很容易地實現服務的備份和恢復。
通過svcs -x命令可以很容易地對服務進行調試,並且可以使每個服務都有自己的固定日志。
所有的服務都可以通過svcadm進行啟動和關閉。具有相應角色的非root用戶也可以啟動、修改和關閉服務。
SMF服務標示
SFM服務標識(Fault Management Resource Identifier, FMRI)指的是服務實例的命名。舉個例子,rlogin服務的FMRI是svc:/network/login:rlogin。
同理,類似的FMRI還有svc:/system/system-log:default。
SMF服務狀態
服務的狀態包括如下幾種類型:
狀態標示 狀態描述
degraded 服務已經啟動,但是在受限制的狀態下運行。
disabled 服務處於關閉狀態。
legacy_run 這個服務目前無法被SMF所管理,但是可以被SMF所監測到。
maintenance 維護狀態。這個服務有大量的錯誤並且應該有系統維護人員進行修復。
offline 這個服務已經啟動,但是處於離線運行狀態。
online 這個服務已經啟動,並且處於在線運行狀態。
uninitialized 這個服務尚未初始化。
SMF相關命令
下面我們通過幾個具體的實例來介紹SMF的使用方法。這些操作需要您首先擁有root權限。
(0) 獲得root權限
# su
(此處需要輸入您的root密碼。)
(1) 察看所有服務的狀態
# svcs -a
(2) 察看sendmail這個服務的狀態
# svcs sendmail
# svcs -l sendmail
(3) 察看sendmail這個服務所依賴的其他服務的狀態
# svcs -d sendmail
(4) 關閉sendmail這個服務
# svcadm disable sendmail
(5) 再次察看sendmail這個服務的狀態
# svcs sendmail
# svcs -l sendmail
(6) 啟動sendmail這個服務
# svcadm enable sendmail
(8) 再次察看sendmail這個服務的狀態
# svcs sendmail
# svcs -l sendmail
(9) 重新啟動sendmail這個服務
# svcadm restart sendmail
練習
SSH 是一種加密遠程傳輸的協議,可以用於登錄遠程的服務器。和我們經常使用的telnet所不同的是,通過SSH進行傳輸的信息是經過加密的,所以不容易被第 三方所截獲和破解。在大部分的Unix/Linux發行版上都提供了SSH服務器和客戶端,OpenSolaris Developer Preview版本也是這樣。
在缺省的狀態下,在OpenSolaris Developer Preview版本上SSH服務是打開的。我們可以使用svcs命令檢查一下這個服務的狀態:
# scvs ssh
如果SSH服務確實是打開的,我們可以在命令行下通過SSH連接到本機。
# ssh localhost
如果沒有什麼意外的話,我們應該可以看到要求您輸入密碼的提示。這是因為SSH客戶短缺省地使用了您當前的用戶名作為登陸用戶名,因此您只需要提供您的登陸密碼就可以了。
現在我們關閉SSH服務,然後檢查該服務的狀態:
# svcadm disable ssh
# svcs ssh
可以看到,這時候SSH服務已經被關閉。如果我們再次嘗試通過SSH連接到本機的話,會由於超時而連接失敗。
# ssh localhost
現在我們啟用SSH服務,然後檢查該服務的狀態:
# svcadm enable ssh
# svcs ssh
可以看到,這時候SSH服務已經被起用。如果我們再次嘗試通過SSH連接到本機的話,會再次看到要求輸入密碼的提示。
# ssh localhost