質問: solaris10での自動起動設定 こんにちは。 solaris10での起動時のコマンドの自動実行について調べています。 solaris10の場合、smfというものが導入されているそうですが、従来の方法も使えるとのことなので、まずは従来方式で試しています。 そこで不明点が2つほどあります。 1つは、起動時のランレベルなのですが、調べると、inittabに書いてあるとの情報が多いのですが、実際ところ、inittab内容は以下のようになっていまして、 ap::sysinit:/sbin/autopush -f /etc/iu.ap sp::sysinit:/sbin/soconfig -f /etc/sock2path smf::sysinit:/lib/svc/bin/svc.startd >/dev/msglog 2<>/dev/msglog /dev/msglog 2<>/dev/msglog どうにも起動時のランレベルと実行されるスクリプトがわかりません。 もう1つ、起動スクリプトの引数なのですが、例えばk16apacheを見ると、 case "$1" in start|startssl|sslstart|start-ssl) : : restart) : : stop) : : *) echo "usage: $0 {start|stop|restart}" exit 1 ;; esac という感じになっているのですが、この$1に入ってくる値の一覧が見つかりません。 webの情報では、「start」,「stop」,「restart」,「status」の4種類ということになっていますが、このスクリプトを見ると、他にもあるようです。実際、どう対応しておけばいいのでしょうか? 以上です。なにか情報などお持ちの方いらっしゃいましたら、よろしくお願いします。
回答: > どうにも起動時のランレベルと実行されるスクリプトがわかりません。 起動時のrunlevelですが、svcs -a | grep milestoneを実行すると multi-user-serverが起動していればrunlevel3、multi-userまでであれば2、single-userまでであれば、sに相当します。 また互換性を重要視するsunらしく、smfで管理されているdaemonが起動し終わった後に、rc*.dのスクリプトが読み込まれますので、過去資産の使い回しも可能にはなっています。 > 実際、どう対応しておけばいいのでしょうか ちょっと真意はご質問からは感じ取れませんでしたが所詮はapachectlを呼び出しているだけですし、rc*.dから起動するのであれば、stopとstartしか呼ばれませんので、デフォルトのままで特に問題はないと思います。 ただし従来の方法であるinit scriptを利用するのは特段理由が無ければ利用しないことを強くお勧めします。 smfはdaemonが落ちてしまった際に自動起動することや、rc*.dではxxのあとにyyを起動する程度しか依存関係を書けませんでしたが、smfはひもづくサービスを記述でき、かつひもづくサービスが落ちた・再起動した際に自身もrestartを実行するなどできます。 ですので、今後消えてゆくrc*.dをあえて選択する必要はないと思います。 参考url:http://docs.sun.com/app/docs/doc/819-0378/hbrunlevels-25516?l=ja&q=smf&a=view