在上一篇透過'svcs -a'指令,可以檢視現在系統所有的服務:
$svcs -a|more
STATE STIME FMRI
legacy_run Aug_17 lrc:/etc/rcS_d/S29wrsmcfg
legacy_run Aug_17 lrc:/etc/rc2_d/S10lu
legacy_run Aug_17 lrc:/etc/rc2_d/S20sysetup
......
disabled Aug_17 svc:/system/device/mpxio-upgrade:default
disabled Aug_17 svc:/system/metainit:default
disabled Aug_17 svc:/network/iscsi_initiator:default
disabled Aug_17 svc:/network/ipfilter:default
.......
online Aug_18 svc:/system/console-login:default
online Oct_17 svc:/network/telnet:default
offline Aug_17 svc:/application/print/rfc1179:default
$
讓我們來了解一下它的內容代表什麼意義吧!
第一個欄位'STATE'中的disable是本來就不會被啟動的服務,而online則是開機時,svcadm會將之啟動的服務,但offline則是svcadm有將它enable了,只是並沒有真正在執行,因為可能相關聯的服務可能沒有被啟動的緣故,這就得靠管理員去檢查了。那什麼是
'legacy_run'呢?就是該服務還是以舊有的rc啟動方式的服務,它無法透過svcadm來管理啟動或停止,因此是屬於"過氣"的執行服務,這在Solaris 10是並存的,以FMRI的稱呼是'lrc'。
最後的第三項就是剛提到的FMRI(Fault Management Resource Identifier),其實就是服務名稱。
用FMRI表示的服務名稱的好處是,它所代表的服務是可以唯一的,但是名稱通常太長,所以可以使用服務名稱的簡寫,只要它是唯一的服務例(service instance)。
像svc:/network/login:rlogin --
scheme=svc,
category=network,
service=login,
service instance=rlogin
那麼rlogin便可以代表是svc:/network/login:rlogin的服務。通常以前常用的服務大部份都可以用簡寫,像rlogin、telnet、ssh、nfs、automount、sendmail、cron...,或用svcs -a |grep <service_name>,如果有output,那麼它便是個服務的簡寫囉。