ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11 システムのインストール Oracle Solaris 11 Information Library (日本語) |
パート I Oracle Solaris 11 のインストールオプション
6. Oracle Solaris インスタンスの構成解除または再構成
スクリプトを実行する一時的なサービスを定義した SMF マニフェストファイルを作成します。
下のサービスマニフェスト例の終わり近くにある duration プロパティーの値は transient になっています。一時的なサービスでは、start メソッドが 1 度実行され、そのメソッドが $SMF_EXIT_OK で終了した場合は再度実行されません。svc.startd デーモンは、スクリプトの初回実行後にスクリプトの再起動を試みません。
サービスの start メソッドによって初回ブートスクリプトが実行されます。
この例のサービスの名前は site/first-boot-script-svc です。クライアントのブート後に、次のコマンドの出力でそのサービスを確認できます。
$ svcs -a|grep first-boot-script STATE STIME FMRI disabled 13:51:42 svc:/site/first-boot-script-svc:default
この例では、multi-user 依存性を指定して、初回ブート後のブートシーケンスの終わりに初回ブートスクリプトが実行されるようにしています。初回ブートスクリプトの実行内容によっては、このような依存性は必要ない場合もあります。このような依存性を指定しない場合は、スクリプトで想定されるようにシステムが構成される前にスクリプトが実行される可能性があります。
ヒント - スクリプトの依存性を評価し、その依存性が満たされたあとでスクリプトを実行するようにサービスを作成してください。
例 13-2 SMF サービスマニフェストの例
次のファイルは、first-boot-script-svc サービス用の SMF マニフェストファイル first-boot-script-svc-manifest.xml です。このサービスはデフォルトで有効になっており、再起動しません。この例でサービスが実行するスクリプトは /opt/site/first-boot-script.sh です。
<?xml version="1.0"?> <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> <service_bundle type='manifest' name='first-boot-script:site-first-boot-script-svc'> <service name='site/first-boot-script-svc' type='service' version='1'> <create_default_instance enabled='true' /> <single_instance /> <!-- Run the script late in the startup sequence after first boot. --> <dependency name='multi-user' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/milestone/multi-user:default' /> </dependency> <exec_method type='method' name='start' exec='/opt/site/first-boot-script.sh' timeout_seconds='360'> <method_context> <method_credential user='root'/> </method_context> </exec_method> <exec_method type='method' name='stop' exec=':true' timeout_seconds='60' /> <property_group name='startd' type='framework'> <propval name='duration' type='astring' value='transient' /> </property_group> </service> </service_bundle>