傳統 /etc/rc3.d/Sxx 腳本仍可用,但 SMF 提供依賴管理、自動重啟、狀態查詢。本文演示將 Oracle 實例納入 SMF 管理。
# 1. 編輯 $ORACLE_HOME/bin/dbstart
# 找到 ORACLE_HOME_LISTNER=$1 → 改為
ORACLE_HOME_LISTNER=$ORACLE_HOME
# 2. 編輯 /var/opt/oracle/oratab
# 格式: SID:ORACLE_HOME:Y|N
# 將 sery 行尾 N 改為 Y
sery:/opt/oracle/product/10.2/db_1:Y
# 3. 測試手動啟動
$ dbstart
Processing Database instance "sery": log file /opt/oracle/product/10.2/db_1/startup.log
$ ps -ef | grep ora | grep -v grep
ora_pmon_sery, ora_smon_sery, ora_dbw0_sery, ora_lgwr_sery, tnslsnr LISTENER ...
文件:/var/svc/manifest/application/oracle/sery.xml
# 驗證 manifest 語法
svccfg validate /var/svc/manifest/application/oracle/sery.xml
# 導入
svccfg import /var/svc/manifest/application/oracle/sery.xml
# 啟用
svcadm enable svc:/application/oracle/sery:default
# 查狀態
svcs -l svc:/application/oracle/sery
# STATE: online 表示成功
# 測試重啟自啟動
reboot
# 開機後
svcs svc:/application/oracle/sery
| 操作 | 命令 |
|---|---|
| 查看狀態/日志 | svcs -xv svc:/application/oracle/sery |
| 暫時禁用 (維護) | svcadm disable -t svc:/application/oracle/sery |
| 永久禁用 | svcadm disable svc:/application/oracle/sery |
| 重啟服務 | svcadm restart svc:/application/oracle/sery |
| 清除維護狀態 | svcadm clear svc:/application/oracle/sery |
svcs 統一查詢。