SMF (Solaris10)

Solarisの起動時に走行するスクリプト(rc2.dやrc3.d)はSolaris10からはちょっと違うのですね。
どこが違うのかというと、実行される順位がいままでと違うのです。
以前はS00〜S99の様に単に数字の順番で実行されていましたが、今回から新たにSMFという機構が追加され、rcX.dよりも前に実行される様になりました。
rcX.dの下にあったスクリプトがごっそりなくなっているのはこの為だったんですね。
ですのでほとんどの主要なスクリプトはこのSMFへ移行されています。
それでも順位が低いだけで今まで通りrcX.dも順次実行されるので使えるには使えるのですが・・・
SMFで走行された履歴はsvcsコマンドで表示されます。
起動直後であればSTIMEに実行した時刻が表示されるので実行されたタイミングがわかります。
FMRI欄がsvc:で始まるのが今回からの新機能分で、xmlファイルとスクリプトの2つから成り立っています。

  • xml
  • /var/svc/manifest/のカテゴライズされたディレクトリに格納

  • script
  • /lib/svc/method/に格納(場所は上記xmlファイルで個別に指定)

xmlファイルでは自分が依存しているFMRIをdependencyで指定し、呼び出すスクリプトをexec_methodで記述します。
後者のスクリプトは今までrcX.dで使用していたものと同様、start/stop式のものです。
2つの準備が完了したらsvccfg -v import 〜.xmlなどとすればDBに取り込まれます。
あとは実際にsvcadmで実行/停止が出来ればOKです。

# svcs -x apache2

こんな感じで実行ステータスを個別に見れます。
STATEがmaintenanceになっている場合は失敗しているので/var/svc/logを確認しましょう。