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